1. 如何在阿里雲Centos7伺服器下安裝部署Nginx+php+Mysql+PHP擴展
1、典型的LNMP安裝問題
2、首先你得准備編譯環境
yum -y install gcc gcc-c++ autoconf 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 openldap openldap-devel nss_ldap openldap-clients openldap-servers bison lynx
3、下載所需MySQL/nginx/php等安裝包
4、安裝nginx和mysql沒有先後順序
5、安裝php依賴包,安裝php,安裝php擴展及優化包
6、詳細的安裝步驟可以網上查LNMP安裝步驟
2. nginx和php通過什麼模塊
當nginx接收到一個http請求時,通過配置文件找到對應的server。然後匹配server中的所有location,找到最匹配的。
而在location中的命令會啟動不同的模塊去完成工作,比如rewrite模塊、index模塊。
因此在nginx中模塊可以看作真正的勞動工作者。
nginx的模塊是被編譯到nginx中的,屬於靜態方式。啟動nginx時,模塊被自動載入。不像apache,把模塊單獨編譯成so文件,在配置文件中指定是否載入。所以,單比模塊載入方面,nginx也比apache速度上有提升。
3. php的zookeeper擴展能在nginx下使用嗎
完全可以在nginx下使用。
Nginx是著名的反向代理伺服器,也被廣泛的作為負載均衡伺服器
ZooKeeper是分布式協調服務框架,有時也被用來做負載均衡
Nginx的負載均衡配置非常簡單,把多個web server配置到nginx中,用戶訪問Nginx時,就會自動被分配到某個web server
ZooKeeper作為一個服務的注冊中心,在其中登記每個服務,每台伺服器知道自己是屬於哪個服務,在伺服器啟動時,自己向所屬服務進行登記。
4. nginx下如何安裝php
進入php源程序目錄中的ext目錄中,這里存放著各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd
curl
執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下
/usr/local/php5/bin/phpize
運行時,可能會報錯:Cannot
find
autoconf.
Please
check
your
autoconf
installation
and
the
$PHP_AUTOCONF
environment
variable
is
set
correctly
and
then
rerun
this
script.,需要安裝autoconf:
yum
install
autoconf(RedHat或者CentOS)、apt-get
install
autoconf(Ubuntu
Linux)
/usr/local/php5/bin/php
-v
執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,
這里會報錯,可以根據錯誤信息去排查!
5. nginx和php 怎麼安裝mysqli擴展
在 centos 下編譯安裝 php 時,有時候經常會忘了某些擴展,比如 pdo,mysqli,但是到擴展目錄下,我們又找不到相應的 擴展文件,(.so 文件) ,這樣的情況下只能 編譯安裝該模塊,生成對應的 so 文件,然後在 php.ini 中添加相應的 擴展記錄,重啟 php就可以了,我們以安裝 mysqli 為例。
首先進入 php 源碼包 如果 找不到可以可下載一個 地址在這里:http://us2.php.net/get/php-5.2.17.tar.gz/from/a/mirror解壓
tar xvzf php-5.2.17.tar.gz
cdphp-5.2.17/ext/mysqli/
然後運行 php 安裝目錄下的 phpize
/usr/local/nginx_php-5.2.17/bin/phpize
(根據自己的 php 安裝目錄來查找,不一定是這個目錄,如果找不到,可以根據 phpinfo() 來查看)然後編譯安裝 mysqli 擴展
#./configure --prefix=/usr/local/mysqli --with-php-config=/usr/local/nginx_php-5.2.17/bin/php-config --with-mysqli=/usr/local/mysql/mysql_config安裝
make && make install
然後在 php 的擴展目錄下已經生成了 mysqli.so 文件打開 php.ini 文件,看是否有如下內容
extension_dir = "/usr/local/nginx_php-5.2.17/lib/php/extensions/no-debug-non-zts-20060613/"如果沒有就添加上
再添加一條:
extension=mysqli.so
保存。
重啟 php。可以看到 mysqli 已經安裝完成了。
6. 同台電腦nginx負載均衡後,第二個網站的PHP擴展啟動不起來
1、upstream 名稱最好不要用localhost
2、server_name 一般不帶埠號的。
3、location ~ .php$ {} 里配置有點復雜,完全可以簡化一下。
location~.php${
roothtml2;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
includefastcgi.conf;
}
7. php和nginx之間是如何工作的
Nginx+php-fpm實現原理 Nginx本身不會對PHP進行解析,終端對PHP頁面的請求將會被Nginx交給FastCGI進程監聽的IP地址及埠,由php-fpm作為動態解析伺服器處理,最後將處理結果再返回給nginx。其實,Nginx就是一個反向代理伺服器。Nginx通過反向代理功能將動態請求轉向後端php-fpm,從而實現對PHP的解析支持,這就是Nginx實現PHP動態解析的原理。 Nginx不支持對外部程序的直接調用或者解析,所有的外部程序(包括PHP)必須通過FastCGI介面來調用。FastCGI介面在Linux下是socket(這個socket可以是文件socket,也可以是ip socket)。為了調用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用於啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如埠或者文件socket。當Nginx將CGI請求發送給這個socket的時候,通過FastCGI介面,wrapper接收到請求,然後派生出一個新的線程,這個線程調用解釋器或者外部程序處理腳本並讀取返回數據;接著,wrapper再將返回的數據通過FastCGI介面,沿著固定的socket傳遞給Nginx;最後,Nginx將返回的數據發送給客戶端。
當nginx接收到一個http請求時,通過配置文件找到對應的server。然後匹配server中的所有location,找到最匹配的。而在location中的命令會啟動不同的模塊去完成工作,比如rewrite模塊、index模塊。因此在nginx中模塊可以看作真正的勞動工作者。nginx的模塊是被編譯到nginx中的,屬於靜態方式。啟動nginx時,模塊被自動載入。
8. nginx支持php需要安裝什麼模塊
此模塊不應該安裝它,路徑到文件中,這個模塊?應該有一個集擴展,DIR的。當你去了phpinfo()函數,看看它是否在裝起來
9. nginx 編譯怎麼添加php模塊
這個是不能直接查看的只有幾種途徑:PHP是編譯的運行程序,在瀏覽器看到的是編譯執行之後的展示頁面,並不是源代碼。網站站長,公開共享免費提供網站源碼整站下載的,可以拿到查看。網站提供後台,給一定的人群,有一定的管理許可權。可以解除代碼。伺服器,部分網站因為某些原因,伺服器是共享的,可以看到源代碼。
應該是這樣,如果樓主這樣還不明白,就可以去網上找後盾人學習
10. nginx php安裝擴展模塊之後要重啟嗎
需要的。更改了配置都需要重啟才生效