1. 程式人生 > >12.1 LNMP架構介紹 12.2 MySQL安裝 12.3/12.4 PHP安裝 12.5 Nginx介紹

12.1 LNMP架構介紹 12.2 MySQL安裝 12.3/12.4 PHP安裝 12.5 Nginx介紹

mcrypt .... game post mcr default .tar.gz sta fig

技術分享圖片

Nginx設計的初衷是提供一種快速、高效、多並發的Web服務軟件。在靜態頁面的處理上,Nginx較Apache更勝一籌;但是在動態頁面的處理上,Nginx並不比Apache有優勢。

技術分享圖片

[root@lizhipenglinux01 src]# ps aux|grep mysql 檢查mysql服務有沒有啟動,如果有請停止服務,service mysql stop
root 5035 0.0 0.0 112676 980 pts/0 R+ 18:22 0:00 grep --color=auto mysql

[root@lizhipenglinux01 src]# rm -rf /usr/local/mysql
[root@lizhipenglinux01 src]# rm -rf /etc/init.d/mysqld 刪除啟動腳本

[root@lizhipenglinux01 src]# vim /etc/my.cnf 配置暫時保留

[root@lizhipenglinux01 src]# pwd 進入目錄
/usr/local/src
[root@lizhipenglinux01 src]# wget ....^C wget下載包
[root@lizhipenglinux01 src]# tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz 解壓

[root@lizhipenglinux01 src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/ 更改名字,確保沒有出現mysql
apache2/ apr/ bin/ games/ lib/ libexec/ php/ sbin/ src/
apache2.4/ apr-util/ etc/ include/ lib64/ mariadb/ php7/ share/
[root@lizhipenglinux01 src]# mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql 更改名字,確保沒有出現mysql
[root@lizhipenglinux01 src]# ls /usr/local/mysql/
bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files

[root@lizhipenglinux01 mysql]# ls /data/ 創建目錄,之前已經創建了
mariadb mysql wwwroot
[root@lizhipenglinux01 mysql]# id mysql 創建用戶mysql,之前已經創建了
uid=1008(mysql) gid=1008(mysql) 組=1008(mysql)

[root@lizhipenglinux01 mysql]# ls
bin COPYING data docs include lib man mysql-test README scripts share sql-bench support-files
[root@lizhipenglinux01 mysql]# rm -rf /data/mysql/* 把mysql裏面的東西清空掉

[root@lizhipenglinux01 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

[root@lizhipenglinux01 mysql]# echo $?
0

技術分享圖片編輯配置文件

[root@lizhipenglinux01 mysql]# cp support-files/mysql.server /etc/init.d/mysqld 拷貝啟動腳本

[root@lizhipenglinux01 mysql]# vim /etc/init.d/mysqld

技術分享圖片

技術分享圖片

技術分享圖片

[root@lizhipenglinux01 mysql]# chkconfig --add mysqld mysqld加入到服務列表
[root@lizhipenglinux01 mysql]# chkconfig mysqld on 開機自啟
[root@lizhipenglinux01 mysql]# service mysql stop
Redirecting to /bin/systemctl stop mysql.service
[root@lizhipenglinux01 mysql]# service mysqld stop
Shutting down MySQL.. SUCCESS!
[root@lizhipenglinux01 mysql]# service mysqld start
Starting MySQL. SUCCESS!

技術分享圖片

[root@lizhipenglinux01 src]# cd php-5.6.30/
[root@lizhipenglinux01 php-5.6.30]# pwd
/usr/local/src/php-5.6.30
[root@lizhipenglinux01 php-5.6.30]# make clean 之前編譯過的文件全部刪掉
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la sapi/cli/php sapi/cgi/php-cgi libphp5.la modules/* libs/* 刪完以後處於剛剛解壓的狀態,之後編譯針對Nginx的PHP

[root@lizhipenglinux01 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

checking for cURL in default path... not found 安裝報錯,少curl
configure: error: Please reinstall the libcurl distribution -
easy.h should be in <curl-dir>/include/curl/

[root@lizhipenglinux01 php-5.6.30]# yum install libcurl-devel

[root@lizhipenglinux01 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@lizhipenglinux01 php-5.6.30]# make && make install

[root@lizhipenglinux01 php-5.6.30]# ls /usr/local/php-fpm/ 比原來的php多了一個sbin,var
bin etc include lib php sbin var

[root@lizhipenglinux01 php-5.6.30]# ls /usr/local/php/
bin etc include lib php

技術分享圖片

[root@lizhipenglinux01 php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -t 檢查有沒有錯誤
[10-Mar-2018 21:05:12] ERROR: failed to open configuration file ‘/usr/local/php-fpm/etc/php-fpm.conf‘: No such file or directory (
[10-Mar-2018 21:05:12] ERROR: failed to load configuration file ‘/usr/local/php-fpm/etc/php-fpm.conf‘
[10-Mar-2018 21:05:12] ERROR: FPM initialization failed
[root@lizhipenglinux01 php-5.6.30]# ls /usr/local/php
php/ php7/ php-fpm/
[root@lizhipenglinux01 php-5.6.30]# ls /usr/local/php-fpm/etc/
pear.conf php-fpm.conf.default

[root@lizhipenglinux01 php-5.6.30]# cp php.ini-production /usr/local/php-fpm/etc/php.ini 拷貝過去,並改名為php.ini

[root@lizhipenglinux01 etc]# ls
pear.conf php-fpm.conf.default php.ini

[root@lizhipenglinux01 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 = 127.0.0.1:9000
listen.mode = 666 當監聽的是socket的時候,該語句才會生效

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@lizhipenglinux01 etc]# cd /usr/local/src/php
php-5.6.30/ php-7.1.6/ phpredis-develop/
[root@lizhipenglinux01 etc]# cd /usr/local/src/php-5.6.30/ 進入源碼目錄,拷貝啟動腳本
[root@lizhipenglinux01 php-5.6.30]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@lizhipenglinux01 php-5.6.30]# chmod 755 /etc/init
init.d/ inittab
[root@lizhipenglinux01 php-5.6.30]# chmod 755 /etc/init.d/php-fpm
[root@lizhipenglinux01 php-5.6.30]# chkconfig --add php-fpm
[root@lizhipenglinux01 php-5.6.30]# chkconfig php-fpm on
[root@lizhipenglinux01 php-5.6.30]# service php-fpm start 啟動失敗,原因是有一個用戶不存在
Starting php-fpm [10-Mar-2018 21:49:01] ERROR: [pool www] cannot get uid for user ‘php-fpm‘
[10-Mar-2018 21:49:01] ERROR: FPM initialization failed

failed

[root@lizhipenglinux01 php-5.6.30]# useradd php-fpm
[root@lizhipenglinux01 php-5.6.30]# service php-fpm start
Starting php-fpm done
[root@lizhipenglinux01 php-5.6.30]# ps aux |grep php-fpm

[root@lizhipenglinux01 php-5.6.30]# ls -l /tmp/php-fcgi.sock
srw-rw-rw- 1 root root 0 3月 10 21:50 /tmp/php-fcgi.sock 666

技術分享圖片

12.1 LNMP架構介紹 12.2 MySQL安裝 12.3/12.4 PHP安裝 12.5 Nginx介紹