LAMP & LNMP
LAMP =
Linux+ Apache + MySQL + PHP
LNMP = Linux + Nginx + MySQL + PHP
流行,免費,開源,輕量
Linux VS Windows: 完全免費,穩定高效
MySQL: 關系型資料庫
Apache:Web伺服器軟體
監聽端口,接收請求,解析HTTP協定,轉發給PHP
Nginx 伺服器軟體
Apache & Nginx:前景更好,配置輕松,性能更優
Apache: select輪詢機制
Nginx: epoll事件監聽機制
編譯安裝
./configure # 編譯前準備
make # 編譯
make install # 安裝
安裝依賴軟體
yum install -y vim wget gcc gcc++ libxml2-devel
編譯安裝php
1、下載下傳
https://www.php.net/downloads.phpwget https://www.php.net/distributions/php-7.3.11.tar.gz
tar -zxvf php-7.3.11.tar.gz
cd php-7.3.11
2、編譯安裝
啟用支援FPM FastCGI
https://www.php.net/manual/zh/install.fpm.install.php./configure --prefix=/usr/local/php7 --enable-fpm
make && make install
CGI 公共網關接口,一個協定 fork子程序,處理完釋放
FastCGI 語言無關,解釋器子程序常駐在記憶體
FPM PHP擴充
$ php -r "phpinfo();"
MySQL
https://dev.mysql.com/downloads/mysql/source code
-> Generic Linux (Architecture Independent), Compressed TAR Archive
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18.tar.gz
2、安裝依賴
yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel
3、安裝
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql/data \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0 \
-DMYSQL_MAINTAINER_MODE=0 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled
make && make install
4、啟動使用
mysqld
mysql
Apache
http://httpd.apache.org/依賴:apr apr-util pcre
wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.41.tar.gz
tar -zxvf httpd-2.4.41.tar.gz
cd httpd-2.4.41
2、編譯安裝(配置必要的參數略)
./configure
make && make install
3、啟動
apachetcl -k start
開放80端口sudo
firewall-cmd --zone=public --add-port80/tcp --permanent
systemctl restart firewalld.service
Nginx
http://nginx.org/en/download.html# 下載下傳
wget http://nginx.org/download/nginx-1.16.1.tar.gz
tar -zxvf nginx-1.16.1.tar.gz
# 安裝 pcre url重寫功能
./configure --prefix=/usr/local/nginx --with-pcre=/pcre
make && make install
# 啟動
./nginx
工作方式
請求 <-> Nginx <-> PHP-FPM
配置
location ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
配置php-fpm
php-fpm.conf
pm = dynamic 設定動态解析
pm.max_children = 5 最大可以啟動多少程序
pm.start_servers = 2 預設啟動幾個程序
配置Nginx
nginx.conf
worker_processes 1; (啟動多少子程序)
重新開機
nginx -s reload
檢視程序
ps aux|grep nginx