LANP No Network Tower Blog

Posted by pmzq on Mon, 14 Oct 2019 11:11:53 +0200

LAMP="Linux Apache Mysql PHP/Python"

Linux is often referred to as a system, and there is no explicit version, such as CentOS/Ubuntu/Debian, which can be used as a server system.

Apache is the engine of Web parsing, which is used to process Web source files into browser convertible page files.

MySQL database, MySQL is a relational database, which stores data in the form of tables, in which data is stored in rows and columns.

PHP is a web scripting language, which is used to generate a page framework. It can not be used alone. It is generally used as a language extension of Apache (so that Apache can support more page languages).

- Customize host-only mode to mount CD-ROM

Source package uploaded to virtual machine

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #Static IP
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.18.6
NETMASK=255.255.255.0
GATEWAY=192.168.18.0
:wq #Sign out
[root@localhost ~]# mkdir /media/dvd #Compact disc
[root@localhost ~]# mount /dev/cdrom /media/dvd/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# mkdir /yum.repo.bak
[root@localhost ~]# mv /etc/yum.repos.d/* /yum.repo.bak/
[root@localhost ~]# vim /etc/yum.repos.d/yum.repo
[localyum]
name=yum
baseurl=file:///media/dvd
enabled=1
gpgcheck=0
: wq #Sign out

HTTP installation:
Configure local yum on the server side

    [root@localhost ~]# mkdir /media/dvd
    [root@localhost ~]# mount /dev/cdrom /media/dvd/
    mount: /dev/sr0 is write-protected, mounting read-only
    [root@localhost ~]# cd /etc/yum.repos.d/
    [root@localhost yum.repos.d]# mkdir /yum.repo.bak
    [root@localhost yum.repos.d]# mv * /yum.repo.bak/
    [root@localhost yum.repos.d]# ls
    [root@localhost yum.repos.d]# vim yum.repo
     [localyum]
    name=yum           #Name
    baseurl=file:/// media/dvd # Specify Path
    enabled=1
    gpgcheck=0

    [root@localhost ~]# yum -y install gcc gcc-c++         #Install compiler tools

Upload httpd source packages to virtual machines

[root@localhost ~]# tar zxf httpd-2.2.17.tar.gz -C /usr/src    #Unzip to / usr/src
[root@localhost ~]# cd /usr/src/httpd-2.2.17
[root@localhost httpd-2.2.17]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi       #To configure

    [root@localhost httpd-2.2.17]# make && make install   #Compile

[root@localhost ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin  #Optimization path
[root@localhost httpd-2.2.17]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd #Adding System Services

[root@localhost ~]# vim /etc/init.d/httpd # Add content to line 3 and 4
#!/bin/sh
#
#chkconfig:35 25 25  #Line 3, line 35, boot order 25, run level
#description:haha     #4 lines of comments for whatever
: wq   #Sign out
[root@localhost ~]# chkconfig --add httpd   

mysql installation:

rpm -q mysql-server mysql   #Check for mysql packages
package mysql-server is not installed
package mysql is not installed
#Nothing here
mkdir /media/dvd   #Mounted CD
mount /dev/cdrom /media/dvd/
mount: /dev/sr0 is write-protected, mounting read-only
cd /media/dvd/Packages/     #Installation of required software
rpm -ivh ncurses-devel-5.9-13.20130511.el7.x86_64.rpm 
warning: ncurses-devel-5.9-13.20130511.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
     1:ncurses-devel-5.9-13.20130511.el7################################# [100%]
cd
ls       #Find the directories of the cmake package and mysql package installations
anaconda-ks.cfg  cmake-2.8.6.tar.gz  initial-setup-ks.cfg  mysql-5.5.22.tar.gz
 tar zxf cmake-2.8.6.tar.gz -C /usr/    #Specify unzipping to / usr directory
 cd /etc/yum.repos.d/   #You need to download the compiler, so configure yum first
 mkdir /yum.repo.bak    #Create a directory to store the original yum package
 mv * /yum.repo.bak/    #Move all packages to a new directory
 ls     #Look no more than 1
 vim yum.repo       #Configure yum
[localyum]
name=yum    #Name
baseurl=file:/// media/dvd # Path
enabled=1
gpgcheck=0
: wq
 yum -y install gcc gcc-c++ #install
Complete!
 cd /usr/cmake-2.8.6/
 ./configure

 gmake && gmake install

 groupadd mysql
 useradd -M -s /sbin/nologin mysql -g mysql     
 cd 
 tar zxf mysql-5.5.22.tar.gz -C /usr/src/
 cd /usr/src/mysql-5.5.22/
 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFIGDIR=/etc/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSET=all

1 Specified installation directory
2 Specify initialization parameter file directory,
3 Specifies the default character set encoding
4 Specified Character Set Calibration Specification
utf8_general_ci Additional Character Set Coding

 make -j 2 && make install -j 2

 chown -R mysql:mysql /usr/local/mysql/
 rm -rf /etc/my.cnf
 cp support-files/my-medium.cnf /etc/my.cnf
 /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data


# Represents success

 echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
 . /etc/profile    #There is a space after the point.
 cp support-files/mysql.server /etc/rc.d/init.d/mysqld
 chmod a+x /etc/rc.d/init.d/mysqld 
 chkconfig --add mysqld

PHP installation:

    [root@localhost ~]# rpm -e php php-cli php-ldap php-commom php-mysql --nodeps
    error: package php is not installed
    error: package php-cli is not installed
    error: package php-ldap is not installed
    error: package php-commom is not installed
    error: package php-mysql is not installed
    [root@localhost ~]# cd /media/dvd/Packages/
    [root@localhost Packages]# rpm -ivh libxml2-2.9.1-6.el7_2.3.x86_64.rpm
    warning: libxml2-2.9.1-6.el7_2.3.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing... ################################# [100%]
    package libxml2-2.9.1-6.el7_2.3.x86_64 is already installed
    [root@localhost Packages]# rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm
    warning: zlib-devel-1.2.7-17.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing... ################################# [100%]
    Updating / installing...
    1:zlib-devel-1.2.7-17.el7 ################################# [100%]
    [root@localhost Packages]# rpm -ivh xz-devel-5.2.2-1.el7.x86_64.rpm
    warning: xz-devel-5.2.2-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing... ################################# [100%]
    Updating / installing...
    1:xz-devel-5.2.2-1.el7 ################################# [100%]
    [root@localhost Packages]# rpm -ivh libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm
    warning: libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing... ################################# [100%]
    Updating / installing...
    1:libxml2-devel-2.9.1-6.el7_2.3 ################################# [100%]
    [root@localhost Packages]# cd
    [root@localhost ~]# tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/libmcrypt-2.5.8/
    [root@localhost libmcrypt-2.5.8]# ./configure && make && make install
    [root@localhost libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/src/
    [root@localhost libmcrypt-2.5.8]# cd
    [root@localhost ~]# tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/mhash-0.9.9.9/
    [root@localhost mhash-0.9.9.9]# ./configure && make && make install
    [root@localhost ~]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/mcrypt-2.6.8/

Direct configuration will cause errors, so first modify the environment variables

[root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
[root@localhost mcrypt-2.6.8]# ./configure
[root@localhost mcrypt-2.6.8]# make -j 2 && make install -j 2
[root@localhost mcrypt-2.6.8]# cd
[root@localhost ~]# tar zxf php-5.3.28.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/php-5.3.28/
[root@localhost php-5.3.28]# ln -s /usr/local/libmhash.* /usr/lib
[root@localhost php-5.3.28]# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring
--prefix=/usr/local/php5 #Route
--with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs
--with-mysql=/usr/local/mysql #mysql path
--with-config-file-path=/usr/local/php5 #Configuration file path
--enable-mbstring #Open string

creating main/internal_functions.c
creating main/internal_functions_cli.c

+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+

Thank you for using PHP.

[root@localhost php-5.3.28]# make && make install

[root@localhost php-5.3.28]# cp /usr/src/php-5.3.28/php.ini-development /usr/local/php5/php.ini
[root@localhost php-5.3.28]# vim /usr/local/php5/php.ini
vim modify
226 short_open_tag = on #open
782 ; PHP's default character set is set to empty.
783 ; http://php.net/default-charset
784 default_charset = "utf-8" #Remove the comment and replace it with "utf-8"
: wq Sign out
[root@localhost ~]# tar zxf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/php-5.3.x/
[root@localhost php-5.3.x]# cp ZendGuardLoader.so /usr/local/php5/lib/php/
[root@localhost php-5.3.x]# vim /usr/local/php5/php.ini

Add the following two lines

zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1
: wq #Sign out
[root@localhost php-5.3.x]# vim /usr/local/httpd/conf/httpd.conf
54 Add and modify lines 168
51 # Example:
52 # LoadModule foo_module modules/mod_foo.so
53 LoadModule php5_module modules/libphp5.so
54 AddType application/x-httpd-php .php #Air Line Added a New Line
55 #
163 #
164 # DirectoryIndex: sets the file that Apache will serve if a directory
165 # is requested.
166 #
167 <IfModule dir_module>
168 DirectoryIndex index.html index.php #Increase in this line
169 </IfModule>

: wq #Sign out
[root@localhost php-5.3.x]# systemctl restart httpd
[root@localhost php-5.3.x]# systemctl restart mysqld
[root@localhost php-5.3.x]# cd
[root@localhost ~]# vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
: wq #Sign out
[root@localhost ~]# firefox 192.168.18.6/index.php

Successful visit

    [root@localhost ~]# cd
    [root@localhost ~]# tar zxf phpMyAdmin-4.2.5-all-languages.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/
    [root@localhost src]# mv phpMyAdmin-4.2.5-all-languages/ /usr/local/httpd/htdocs/phpMyAdmin
    [root@localhost src]# cd /usr/local/httpd/htdocs/phpMyAdmin/
    [root@localhost phpMyAdmin]# cp config.sample.inc.php config.inc.php
    [root@localhost phpMyAdmin]# mysqladmin -u root -p password '123'
    Enter password:
    [root@localhost phpMyAdmin]# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.5.22-log Source distribution

    Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.

    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

    mysql> exit
    Bye

Logged-in point execution

[root@localhost ~]# vim /usr/local/httpd/htdocs/test.php
<?php
$link=mysql_connect('localhost','root','123');
if($link) echo "Congratulations on the success of database connection!!";
mysql_close();
?>
: wq #Sign out
[root@localhost ~]# firefox 192.168.18.6/test.php

[root@localhost ~]# unzip Discuz_7.2_FULL_SC_UTF8.zip
[root@localhost ~]# mv upload/ /usr/local/httpd/htdocs/bbs
[root@localhost ~]# chown -R daemon:daemon /usr/local/httpd/htdocs/bbs/
[root@localhost ~]# systemctl restart httpd
[root@localhost ~]# systemctl start httpd

[root@localhost ~]# firefox 192.168.18.6/bbs/install

[root@localhost ~]# netstat -anput | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      81067/httpd        

# If exit occurs, perform the following steps

[root@localhost ~]# firefox 192.168.18.6/bbs

The difference between nginx and apache

nginx:

Advantages: Lightweight, good static file processing, high concurrency

Disadvantage: Problems may occur in dynamic file processing

nginx can't process php files, but it can get help to process them

apache:

Advantages: Good dynamic file processing, stability, security

Disadvantage: overstaffed service and low efficiency

Topics: Linux PHP MySQL yum RPM