• 和LAMP不一樣的是,提供web服務的是Nginx • 而且php是做爲一個獨立服務存在的,這個服務叫作php-fpm • Nginx直接處理靜態請求,動態請求會轉發給php-fpmphp
二進制免編譯安裝mysql 5.7.20css
1 下載解壓mysql
cd /usr/local/src wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql
2 初始化linux
useradd -M -s /sbin/nologin mysql mkdir -p /data/mysql chown mysql /data/mysql cd /usr/local/mysql ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql 注意,這一步最後一行會有一個提示 [Note] A temporary password is generated for root@localhost: vF)rn:Z;i5Al 最後面的字符串爲root密碼。 ./bin/mysql_ssl_rsa_setup --datadir=/data/mysql
3 新建配置文件和啓動腳本nginx
mv /etc/my.cnf /etc/my.cnf.bak 或者 rm /etc/my.cnf 刪除系統自動的my.cnf vim /etc/my.cnf //新建一個my.cnf並編輯 注意 這裏我mysql的端口 [client] port=33060 default-character-set=utf8 [mysqld] # 設置爲本身MYSQL的安裝目錄 basedir=/usr/local/mysql # 設置爲MYSQL的數據目錄 datadir=/data/mysql port=33060 socket=/tmp/mysql.sock character_set_server=utf8 #開啓查詢緩存 explicit_defaults_for_timestamp=true cp support-files/mysql.server /etc/init.d/mysqld vim /etc/init.d/mysqld //編輯修改 basedir=/usr/local/mysql datadir=/data/mysql
4 啓動以及其它git
1 常規啓動 /etc/init.d/mysqld startweb
2 設置mysql開機啓動 , 測試sql
chkconfig --add mysqld service mysqld start | stop | restart netstat -lntp |grep 33060 或 ps aux | grep mysql //查看mysql端口. 查看mysql啓動的進程 此時輸入mysql可能沒法鏈接,這是由於當前環境變量路徑中找不到mysql echo "export PATH=/usr/local/mysql/bin:$PATH">>/etc/profile source /etc/profile
以後可順利鏈接mysqlvim
make clean 能夠把php源碼包中以前configure編譯過的文件所有清除掉api
和LAMP安裝PHP方法有差異,須要開啓php-fpm服務
cd /usr/local/src/ wget http://cn.php.net/distributions/php-7.2.1.tar.gz tar xf php-7.2.1.tar.gz useradd -M -s /sbin/nologin php-fpm cd php-7.2.1/ ./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-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 --enable-soap --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl --with-mcrypt, --enable-gd-native-ttf make && make install cp php.ini-production /usr/local/php-fpm/etc/php.ini
vim /usr/local/php-fpm/etc/php-fpm.conf //寫入以下內容(參考https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D15Z/php-fpm.conf)// 默認conf爲 /usr/local/php-fpm/etc/php-fpm.conf.default , 好像不大好用
[global] //定義全局參數 pid = /usr/local/php-fpm/var/run/php-fpm.pid //定義pid error_log = /usr/local/php-fpm/var/log/php-fpm.log //定義錯誤日誌文件 [www] //模塊www listen = /tmp/php-fcgi.sock //監聽的地址 也能夠寫成 listen = 127.0.0.1:9000, port默認9000, 後面nginx裏的虛擬主機conf 解析php 相關配置也要寫的和這裏匹配,不然會報502錯誤 listen.mode = 666 //監聽sock纔會生效, sock文件權限爲666, 不指定默認爲660, sock屬主和屬組是root, 但nginx讀sock用戶的身份是nobody, 因此會報502錯誤 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 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod 755 /etc/init.d/php-fpm chkconfig --add php-fpm chkconfig php-fpm on service php-fpm start // reload 重載php配置文件 ps aux |grep php-fpm
編譯php時,若是mysql不在同一臺機器上怎麼辦 http://ask.apelearn.com/question/17664
./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=nobody --with-fpm-group=php-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --enable-soap --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl
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