原始碼安裝Nginx和PHP
1.安裝編譯環境
yum -yinstall gcc gcc-c++ automake autoconf libtool make glibc
yum -y install libmcrypt-devel mhash-devellibxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devellibxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-develkrb5 krb5-devel libidn libidn-devel openssl openssl-devel
2.安裝nginx
一般我們都需要先裝pcre,zlib,前者為了重寫rewrite,後者為了gzip壓縮
2.1選定原始碼目錄
可以是任何目錄,本文選定的是/usr/local/src
cd /usr/local/src
2.2安裝PCRE庫
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
下載最新的 PCRE 原始碼包,使用下面命令下載編譯和安裝 PCRE 包:
cd /usr/local/src
wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
tar –zxvf pcre-8.37.tar.gz
cd pcre-8.37
./configure --enable-utf8
make && make install
2.3安裝zlib庫
下載最新的 zlib 原始碼包,使用下面命令下載編譯和安裝 zlib包:
cd /usr/local/src
wget
tar -zxvf zlib-1.2.8.tar.gz
cd zlib-1.2.8
./configure
make && make install
2.4安裝ssl(某些vps預設沒裝ssl)(直解壓,不安裝)
cd /usr/local/src
wget
tar -zxvf openssl-1.0.2g.tar.gz
2.5安裝nginx
Nginx 一般有兩個版本,分別是穩定版和開發版,您可以根據您的目的來選擇這兩個版本的其中一個,下面是把 Nginx 安裝到/usr/local/nginx 目錄下的詳細步驟:
cd /usr/local/src
wget
tar -zxvf nginx-1.9.12.tar.gz
cd nginx-1.9.12
./configure --sbin-path=/usr/local/nginx/nginx
--conf-path=/usr/local/nginx/nginx.conf
--pid-path=/usr/local/nginx/nginx.pid
--with-http_ssl_module
--with-pcre=/usr/local/src/pcre-8.37
--with-zlib=/usr/local/src/zlib-1.2.8
--with-openssl=/usr/local/src/openssl-1.0.2g
make && make install
--with-pcre=/usr/src/pcre-8.37 指的是pcre-8.34 的原始碼路徑。
--with-zlib=/usr/src/zlib-1.2.8指的是zlib-1.2.8 的原始碼路徑。
檢測nginx是否安裝成功
[root@localhost nginx-1.9.12]#/usr/local/nginx/nginx -t
nginx: the configuration file/usr/local/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/nginx.conftest is successful
安裝成功後/usr/local/nginx 目錄下如下
fastcgi.conf koi-win nginx.conf.default
fastcgi.conf.default logs scgi_params
fastcgi_params mime.types scgi_params.default
fastcgi_params.default mime.types.default uwsgi_params
html nginx uwsgi_params.default
koi-utf nginx.conf win-utf
6.啟動
確保系統的 80 埠沒被其他程式佔用,執行/usr/local/nginx/nginx 命令來啟動 Nginx,
netstat –tunlp| grep 80
如果查不到結果後執行,有結果則忽略此步驟
開啟瀏覽器訪問此機器的IP,如果瀏覽器出現 Welcome to nginx! 則表示 Nginx 已經安裝並執行成功。到這裡nginx就安裝完成了,如果只是處理靜態html就不用繼續安裝了
如果你需要處理php指令碼的話,還需要安裝php-fpm
常見問題:
(2)啟動nginx出現下面的報錯資訊:
Nginx [emerg]: bind() to 0.0.0.0:80failed (98: Address already in use)
解決方法:
使用命令關閉佔用80埠的程式,然後再啟用
#fuser -k 80/tcp
(3)啟動php-fpm報錯:
ERROR: unable to bind listening socket for address '127.0.0.1:9000':Address already in use (98)
ERROR: FPM initialization failed
解決方法:
解決辦法:關閉程式然後再啟動
killall php-fpm
/usr/local/php/sbin/php-fpm
(4)命令列下執行php,提示找不到命令
-bash:/usr/bin/php: No such file or directory
vi/etc/profile
在檔案底部增加一行配置
export PATH=/usr/local/php/bin:$PATH
儲存退出
source/etc/profile
常用命令:
(1)檢視php-fpm程式數:
ps -aux | grep php-fpm
(2)啟動nginx:/usr/local/nginx/nginx
二、安裝php-fpm
安裝前準備
centos下執行
yum -y install gcc gcc-c++ glibc automake autoconf libtool make
yum -y install libmcrypt-devel mhash-devel libxslt-devel
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel
krb5 krb5-devel libidn libidn-devel openssl openssl-devel
新版php-fpm安裝(推薦安裝方式)
或者先安裝libmcrypt-dev,教程在後面
wget
tar zvxf php-5.6.19.tar.gz
cd php-5.6.19
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt --enable-mbstring--disable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-opcache=no --enable-pcntl--enable-mbregex --with-mhash --with-pcre-regex --with-mysql --with-mysqli --with-gd --with-jpeg-dir
make all install
安裝安裝成功後的提示:
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
/usr/local/src/php-5.6.19/build/shtoolinstall -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
在/usr/local/lib目錄下沒有php.ini檔案。在這我們就先複製php安裝檔案提供的模版,如下:
cp php.ini-production /usr/local/php/lib/php.ini
vim /etc/php.ini (增加/usr/local/php/lib/php到include_path)
include_path = "/usr/local/php/lib/php"
/usr/local/src/php-5.6.19/build/shtoolinstall -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f phar.phar /usr/local/php/bin/phar
cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.con
為了讓php-fpm已服務的形式啟動。我們需要複製php安裝目錄下/sapi/fpm/init.d.php-fpm檔案。如下:
cp./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
後期擴充套件:
將opcache 作為一個擴充套件安裝
將zip作為php的擴充套件安裝
配置nginx,使其支援php,如下:
location ~ /.php$ {
root /usr/local/nginx/html;
fastcgi_pass127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;
include fastcgi_params;
}
然後在nginx的網站根目錄下新建index.php檔案內容如下:
vi/usr/local/nginx/html/index.php
echo phpinfo();
?>
透過進行訪問
(1)./configure時報錯:mcrypt.h not found. Pleasereinstall libmcrypt
解決方法:apt-get install libmcrypt-dev
或者
cd /usr/local/src
wget
tar -zxvf libmcrypt-2.5.8.tar.gz
cd /usr/local/src/libmcrypt-2.5.8
./configure --prefix=/usr/local
make
make install
(2)nginx/php-fpm訪問php檔案直接下載而不執行
一、網站根目錄
預設是在 /usr/local/nginx/html檔案
配置在
location / {
root /home/www/wwwroot;
index index.html index.htm;
}
二、修改檔案中對應的php配置部分
location ~ .php$ {
root /home/www/wwwroot;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
特別需要注意的是:fastcgi_param這個引數預設的是$fastcgi_script_name;最好改 為$document_root$fastcgi_script_name;我在實際配置中出現了php找不到需要解析檔案而返回404或者500錯誤的問題。所以最好是帶上網站根目錄的路徑變數$document_root
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2768/viewspace-2810149/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx原始碼安裝Nginx原始碼
- Nginx 原始碼安裝Nginx原始碼
- centos7.4原始碼安裝php,swoole,nginx,redis,mariadbCentOS原始碼PHPNginxRedis
- Nginx1.19 php8.0 原始碼編譯安裝NginxPHP原始碼編譯
- macbook 原始碼安裝 nginxMac原始碼Nginx
- docker原始碼安裝NginxDocker原始碼Nginx
- 【推薦 - 原始碼安裝】nginx - 安裝原始碼Nginx
- CentOS7原始碼安裝NginxCentOS原始碼Nginx
- Mac下Nginx、PHP、MySQL 和 PHP-fpm安裝配置MacNginxPHPMySql
- Docker下安裝Nginx和php(爬坑篇)DockerNginxPHP
- CentOS6.9原始碼編譯安裝nginx+php7+mysql環境CentOS原始碼編譯NginxPHPMySql
- nginx原始碼編譯安裝(詳解)Nginx原始碼編譯
- CentOS 6.5 php原始碼安裝1.0版CentOSPHP原始碼
- PHP7 原始碼安裝 swoole 全流程PHP原始碼
- 編譯安裝nginx-php-mysql編譯NginxPHPMySql
- ubuntu16.04 PHP7安裝與Nginx PHPUbuntuPHPNginx
- shell指令碼企業實戰系列-nginx原始碼包安裝指令碼Nginx原始碼
- CentOS7.3 安裝配置 Nginx、MariaDB、PHPCentOSNginxPHP
- 【docker】docker 安裝配置 nginx+php+composerDockerNginxPHP
- centos7+安裝nginx+php7CentOSNginxPHP
- Ununtu伺服器安裝Nginx與PHP伺服器NginxPHP
- Nginx下載和安裝Nginx
- CentOS7 yum 安裝 nginx 和 PHP7 訪問白屏CentOSNginxPHP
- centos9透過dnf安裝php和nginx遇到的坑CentOSPHPNginx
- ubuntu20 原始碼安裝nginx以及常用命令Ubuntu原始碼Nginx
- Greenplum_原始碼編譯安裝和RPM包安裝原始碼編譯
- 原始碼安裝和配置zabbix 3.0 LST原始碼
- Linux上安裝Nginx依賴環境和庫、Nginx安裝,Nginx服務命令LinuxNginx
- Centos6 下安裝Nginx+Mysql+PHPCentOSNginxMySqlPHP
- Linux下安裝Nginx+PHP7.1+MySQL5.7LinuxNginxPHPMySql
- 筆記:Mac安裝PHP、nginx、myspl環境筆記MacPHPNginx
- MacOS12安裝PHP7.4、composer、NginxMacPHPNginx
- 如何在FreeBSD中安裝Nginx,MySQL,PHP(FEMP)NginxMySqlPHP
- Nginx 基礎理解和安裝Nginx
- PHP 容器中安裝原始碼包中的擴充套件PHP原始碼套件
- (MAC) PHP安裝和配置MacPHP
- 原始碼安裝openresty原始碼REST
- 原始碼安裝postgresql原始碼SQL