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