- 和LAMP不同的是,提供web服务的是Nginx
- 并且php是作为一个独立服务存在的,这个服务叫做php-fpm
- Nginx直接处理静态请求,动态请求会转发给php-fpm
MySQL安装
[root@node15 src]# ls
mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@node15 src]# tar zxf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@node15 src]# ls
mysql-5.6.36-linux-glibc2.5-x86_64 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@node15 src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
[root@node15 src]# cd /usr/local/mysql/
[root@node15 mysql]# ls
bin data include man README share support-files
COPYING docs lib mysql-test scripts sql-bench
[root@node15 mysql]# useradd mysql
[root@node15 mysql]# mkdir /data
mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@node15 src]# tar zxf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@node15 src]# ls
mysql-5.6.36-linux-glibc2.5-x86_64 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
[root@node15 src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
[root@node15 src]# cd /usr/local/mysql/
[root@node15 mysql]# ls
bin data include man README share support-files
COPYING docs lib mysql-test scripts sql-bench
[root@node15 mysql]# useradd mysql
[root@node15 mysql]# mkdir /data
[root@node15 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[root@node15 mysql]# yum install -y libaio*
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[root@node15 mysql]# yum install -y libaio*
[root@node15 mysql]# echo $?
0
[root@node15 mysql]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[root@node15 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@node15 mysql]# vi /etc/init.d/mysqld
[root@node15 mysql]# chmod 755 /etc/init.d/mysqld
[root@node15 mysql]# chkconfig --add mysqld
[root@node15 mysql]# chkconfig mysqld on
[root@node15 mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/node15.err'.
. SUCCESS!
[root@node15 mysql]# ps aux|grep mysqld
root 1229 0.2 0.1 11772 1592 pts/0 S 08:56 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/node15.pid
mysql 1336 7.8 44.9 1300780 449552 pts/0 Sl 08:56 0:00 /usr/local/mysql/binmysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/node15.err --pid-file=/data/mysql/node15.pid
root 1362 0.0 0.0 112676 984 pts/0 S+ 08:56 0:00 grep --color=auto mysqld
0
[root@node15 mysql]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
[root@node15 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@node15 mysql]# vi /etc/init.d/mysqld
[root@node15 mysql]# chmod 755 /etc/init.d/mysqld
[root@node15 mysql]# chkconfig --add mysqld
[root@node15 mysql]# chkconfig mysqld on
[root@node15 mysql]# service mysqld start
Starting MySQL.Logging to '/data/mysql/node15.err'.
. SUCCESS!
[root@node15 mysql]# ps aux|grep mysqld
root 1229 0.2 0.1 11772 1592 pts/0 S 08:56 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/node15.pid
mysql 1336 7.8 44.9 1300780 449552 pts/0 Sl 08:56 0:00 /usr/local/mysql/binmysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/node15.err --pid-file=/data/mysql/node15.pid
root 1362 0.0 0.0 112676 984 pts/0 S+ 08:56 0:00 grep --color=auto mysqld
PHP安装
[root@node15 src]# wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
[root@node15 src]# tar zxf php-5.6.30.tar.gz
[root@node15 src]# useradd -s /sbin/nologin php-fpm
[root@node15 src]# cd php-5.6.30
[root@node15 src]# useradd -s /sbin/nologin php-fpm
[root@node15 src]# cd php-5.6.30
[root@node15 php-5.6.30]# yum install -y libjpeg-devel libxml2-devel bzip2-devel libpng-devel freetype-devel libmcrypt-devel
[root@node15 php-5.6.30]# yum install -y openssl openssl-devel
[root@node15 php-5.6.30]# yum install -y libcurl-devel
[root@node15 php-5.6.30]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
[root@node15 php-5.6.30]# make
[root@node15 php-5.6.30]# make install
[root@node15 php-5.6.30]# cp php.ini-production /usr/local/php-fpm/etc/php.ini
[root@node15 php-5.6.30]# ls /usr/local/php-fpm/ bin etc include lib php sbin var [root@node15 php-5.6.30]# ls /usr/local/php-fpm/sbin/ php-fpm [root@node15 php-5.6.30]# ls /usr/local/php-fpm/var/ log run [root@node15 php-5.6.30]# cd /usr/local/php-fpm/etc/ [root@node15 etc]# ls pear.conf php-fpm.conf.default php.ini [root@node15 etc]# vim php-fpm.conf
[global]
pid =
/usr/local
/php-fpm/var
/run/php-fpm.pid
error_log =
/usr/local
/php-fpm/var
/log/php-fpm.log
[www]
listen =
/tmp/php-fcgi.sock
listen.mode =
666
user = php-fpm
group = php-fpm
pm = dynamic
pm.max_children =
50
pm.start_servers =
20
pm.min_spare_servers =
5
pm.max_spare_servers =
35
pm.max_requests =
500
rlimit_files =
1024
[root@node15 etc]# cd /usr/local/src/php-5.6.30 [root@node15 php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@node15 php-5.6.30]# chmod 755 /etc/init.d/php-fpm [root@node15 php-5.6.30]# chkconfig --add php-fpm [root@node15 php-5.6.30]# chkconfig php-fpm on [root@node15 php-5.6.30]# service php-fpm start Starting php-fpm done [root@node15 php-5.6.30]# ps aux | grep php-fpm root 8327 0.2 0.4 123612 4952 ? Ss 09:54 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf) php-fpm 8328 0.0 0.4 123612 4708 ? S 09:54 0:00 php-fpm: pool www php-fpm 8329 0.0 0.4 123612 4708 ? S 09:54 0:00 php-fpm: pool www php-fpm 8330 0.0 0.4 123612 4708 ? S 09:54 0:00 php-fpm: pool www php-fpm 8331 0.0 0.4 123612 4708 ? S 09:54 0:00 php-fpm: pool www php-fpm 8332 0.0 0.4 123612 4712 ? S 09:54 0:00 php-fpm: pool www php-fpm 8333 0.0 0.4 123612 4712 ? S 09:54 0:00 php-fpm: pool www php-fpm 8334 0.2 0.4 123612 4712 ? S 09:54 0:00 php-fpm: pool www php-fpm 8335 0.0 0.4 123612 471
nginx介绍
Nginx官网 nginx.org,最新版1.13,最新稳定版1.12 Nginx应用场景:web服务、反向代理、负载均衡 Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都一样,和 Nginx的最大区别在于Tenging增加了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并 Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928