centosyumphpfpm
A. 如何在CentOS 6上通過YUM安裝Nginx和php-FPM
准備篇:
1、配置防火牆,開啟80埠、3306埠
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT(允許80埠通過防火牆)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT(允許3306埠通過防火牆)
特別提示:很多網友把這兩條規則添加到防火牆配置的最後一行,導致防火牆啟動失敗,正確的應該是添加到默認的22埠這條規則的下面
添加好之後防火牆規則如下所示:
#########################################################
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
#########################################################
/etc/init.d/iptables restart #最後重啟防火牆使配置生效
2、關閉SElinux
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq 保存,關閉
shutdown -r now #重啟系統
3、配置CentOS 6.2 第三方yum源(CentOS默認的標准源里沒有nginx軟體包)
yum install wget #安裝下載工具wget
1
wget http://www.atomicorp.com/installers/atomic
#下載atomic yum源
sh ./atomic #安裝
yum check-update #更新yum軟體包
################################################################
安裝篇:
一、安裝nginx
yum install nginx #安裝nginx,根據提示,輸入Y安裝即可成功安裝
service nginx start #啟動
chkconfig nginx on #設為開機啟動
/etc/init.d/nginx restart #重啟
rm -rf /usr/share/nginx/html/* #刪除ngin默認測試頁
二、安裝Mysql
1、安裝mysql
yum install mysql mysql-server #詢問是否要安裝,輸入Y即可自動安裝,直到安裝完成
/etc/init.d/mysqld start #啟動MySQL
chkconfig mysqld on #設為開機啟動
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #拷貝配置文件(注意:如果/etc目錄下面默認有一個my.cnf,直接覆蓋即可)
shutdown -r now #重啟系統
2、為root賬戶設置密碼
mysql_secure_installation
回車,根據提示輸入Y
輸入2次密碼,回車
根據提示一路輸入Y
最後出現:Thanks for using MySQL!
MySql密碼設置完成,重新啟動 MySQL:
/etc/init.d/mysqld stop #停止
/etc/init.d/mysqld start #啟動
service mysqld restart #重啟
三、安裝PHP
1、安裝PHP
yum install php #根據提示輸入Y直到安裝完成
2、安裝PHP組件,使PHP支持 MySQL、PHP支持FastCGI模式
1
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt libmcrypt-devel php-fpm
#根據提示輸入Y回車
/etc/init.d/mysqld restart #重啟MySql
/etc/init.d/nginx restart #重啟nginx
/etc/rc.d/init.d/php-fpm start #啟動php-fpm
chkconfig php-fpm on #設置開機啟動
################################################################
配置篇
一、配置nginx支持php
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak #備份原有配置文件
vi /etc/nginx/nginx.conf #編輯
user nginx nginx; #修改nginx運行賬號為:nginx組的nginx用戶
:wq! #保存退出
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak #備份原有配置文件
vi /etc/nginx/conf.d/default.conf #編輯
index index.php index.html index.htm; #增加index.php
1
2
3
4
5
6
7
8
9
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#取消FastCGI server部分location的注釋,並要注意fastcgi_param行的參數,改為$document_root$fastcgi_script_name,或者使用絕對路徑
二、配置php
vi /etc/php.ini #編輯
date.timezone = PRC #在946行 把前面的分號去掉,改為date.timezone = PRC
1
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#在386行 列出PHP可以禁用的函數,如果某些程序需要用到這個函數,可以刪除,取消禁用。
expose_php = Off #在432行 禁止顯示php版本的信息
magic_quotes_gpc = On #在745行 打開magic_quotes_gpc來防止SQL注入
open_basedir = .:/tmp/ #在380行,設置表示允許訪問當前目錄(即PHP腳本文件所在之目錄)和/tmp/目錄,可以防止php木馬跨站,如果改了之後安裝程序有問題,可注銷此行,或者直接寫上程序目錄路徑/var/www/html/www.osyunwei.com/:/tmp/
:wq! #保存退出
三、配置php-fpm
cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.confbak #備份原有配置文件
vi /etc/php-fpm.d/www.conf #編輯
user = nginx #修改用戶為nginx
group = nginx #修改組為nginx
/etc/init.d/mysqld restart #重啟MySql
/etc/init.d/nginx restart #重啟nginx
/etc/rc.d/init.d/php-fpm restart #重啟php-fpm
################################################################
測試篇
cd /usr/share/nginx/html/ #進入nginx默認網站根目錄
vi index.php #新建index.php文件
1
2
3
<?php
phpinfo();
?>
:wq! #保存
chown nginx.nginx /usr/share/nginx/html/ -R #設置目錄所有者
chmod 700 /usr/share/nginx/html/ -R #設置目錄許可權
在客戶端瀏覽器輸入伺服器IP地址,可以看到相關的配置信息!
################################################################
備注
nginx默認站點目錄是:/usr/share/nginx/html/
許可權設置:chown nginx.nginx /usr/share/nginx/html/ -R
MySQL資料庫目錄是:/var/lib/mysql
許可權設置:chown mysql.mysql -R /var/lib/mysql
B. php-fpm子進程會自動重啟嗎
伺服器出現異常,網站不能正常訪問。經排查�php的問題。
在重啟php-fpm時,恢復正常。1分鍾之後又出現故障。查看php日誌文件/usr/local/php/var/log 後提示
WARNING: [pool www] server reached pm.max_children setting (5), consider raising it
子進程數已經達到設置的最大值。
要設置php進程數量。需要在php-fpm.conf文件中修改。
先看/usr/local/php/etc/php-fpm.conf文件各項配置解析
pid = run/php-fpm.pid
#pid設置,默認在安裝目錄中的var/run/php-fpm.pid,建議開啟
error_log = log/php-fpm.log
#錯誤日誌,默認在安裝目錄中的var/log/php-fpm.log
log_level = notice
#錯誤級別. 可用級別為: alert(必須立即處理), error(錯誤情況), warning(警告情況), notice(一般重要信息), debug(調試信息). 默認: notice.
emergency_restart_threshold = 60
emergency_restart_interval = 60s
#表示在emergency_restart_interval所設值內出現SIGSEGV或者SIGBUS錯誤的php-cgi進程數如果超過 emergency_restart_threshold個,php-fpm就會優雅重啟。這兩個選項一般保持默認值。
process_control_timeout = 0
#設置子進程接受主進程復用信號的超時時間. 可用單位: s(秒), m(分), h(小時), 或者 d(天) 默認單位: s(秒). 默認值: 0.
daemonize = yes
#後台執行fpm,默認值為yes,如果為了調試可以改為no。在FPM中,可以使用不同的設置來運行多個進程池。 這些設置可以針對每個進程池單獨設置。
listen = 127.0.0.1:9000
#fpm監聽埠,即nginx中php處理的地址,一般默認值即可。可用格式為: 『ip:port』, 『port』, 『/path/to/unix/socket』. 每個進程池都需要設置.
listen.backlog = -1
#backlog數,-1表示無限制,由操作系統決定,此行注釋掉就行。backlog含義參考:
http://www.3gyou.cc/?p=41
listen.allowed_clients = 127.0.0.1
#允許訪問FastCGI進程的IP,設置any為不限制IP,如果要設置其他主機的nginx也能訪問這台FPM進程,listen處要設置成本地可被訪問的IP。默認值是any。每個地址是用逗號分隔. 如果沒有設置或者為空,則允許任何伺服器請求連接
listen.owner = www
listen.group = www
listen.mode = 0666
#unix socket設置選項,如果使用tcp方式訪問,這里注釋即可。
user = www
group = www
#啟動進程的帳戶和組
pm = dynamic #對於專用伺服器,pm可以設置為static。
#如何控制子進程,選項有static和dynamic。如果選擇static,則由pm.max_children指定固定的子進程數。如果選擇dynamic,則由下開參數決定:
pm.max_children #,子進程最大數
pm.start_servers #,啟動時的進程數
pm.min_spare_servers #,保證空閑進程數最小值,如果空閑進程小於此值,則創建新的子進程
pm.max_spare_servers #,保證空閑進程數最大值,如果空閑進程大於此值,此進行清理
pm.max_requests = 1000
#設置每個子進程重生之前服務的請求數. 對於可能存在內存泄漏的第三方模塊來說是非常有用的. 如果設置為 』0′ 則一直接受請求. 等同於 PHP_FCGI_MAX_REQUESTS 環境變數. 默認值: 0.
pm.status_path = /status
#FPM狀態頁面的網址. 如果沒有設置, 則無法訪問狀態頁面. 默認值: none. munin監控會使用到
ping.path = /ping
#FPM監控頁面的ping網址. 如果沒有設置, 則無法訪問ping頁面. 該頁面用於外部檢測FPM是否存活並且可以響應請求. 請注意必須以斜線開頭 (/)。
ping.response = pong
#用於定義ping請求的返回相應. 返回為 HTTP 200 的 text/plain 格式文本. 默認值: pong.
request_terminate_timeout = 0
#設置單個請求的超時中止時間. 該選項可能會對php.ini設置中的』max_execution_time』因為某些特殊原因沒有中止運行的腳本有用. 設置為 』0′ 表示 『Off』.當經常出現502錯誤時可以嘗試更改此選項。
request_slowlog_timeout = 10s
#當一個請求該設置的超時時間後,就會將對應的PHP調用堆棧信息完整寫入到慢日誌中. 設置為 』0′ 表示 『Off』
slowlog = log/$pool.log.slow
#慢請求的記錄日誌,配合request_slowlog_timeout使用
rlimit_files = 1024
#設置文件打開描述符的rlimit限制. 默認值: 系統定義值默認可打開句柄是1024,可使用 ulimit -n查看,ulimit -n 2048修改。
rlimit_core = 0
#設置核心rlimit最大限制值. 可用值: 『unlimited』 、0或者正整數. 默認值: 系統定義值.
chroot =
#啟動時的Chroot目錄. 所定義的目錄需要是絕對路徑. 如果沒有設置, 則chroot不被使用.
chdir =
#設置啟動目錄,啟動時會自動Chdir到該目錄. 所定義的目錄需要是絕對路徑. 默認值: 當前目錄,或者/目錄(chroot時)
catch_workers_output = yes
#重定向運行過程中的stdout和stderr到主要的錯誤日誌文件中. 如果沒有設置, stdout 和 stderr 將會根據FastCGI的規則被重定向到 /dev/null . 默認值: 空.
根據以上配置的解析,在php-fpm.conf文件中添加如下配置:
pm.max_children = 100
pm.start_servers = 30
pm.min_spare_servers = 20
pm.max_spare_servers = 100
以觀後效。
另附豆瓣技術貼:https://www.douban.com/note/315222037/
1、php-fpm優化參數介紹
他們分別是:pm、pm.max_children、pm.start_servers、pm.min_spare_servers、pm.max_spare_servers。
pm:表示使用那種方式,有兩個值可以選擇,就是static(靜態)或者dynamic(動態)。
在更老一些的版本中,dynamic被稱作apache-like。這個要注意看配置文件的說明。
下面4個參數的意思分別為:
pm.max_children:靜態方式下開啟的php-fpm進程數量
pm.start_servers:動態方式下的起始php-fpm進程數量
pm.min_spare_servers:動態方式下的最小php-fpm進程數
pm.max_spare_servers:動態方式下的最大php-fpm進程數量
區別:
如果dm設置為 static,那麼其實只有pm.max_children這個參數生效。系統會開啟設置數量的php-fpm進程。
如果dm設置為 dynamic,那麼pm.max_children參數失效,後面3個參數生效。
系統會在php-fpm運行開始 的時候啟動pm.start_servers個php-fpm進程,
然後根據系統的需求動態在pm.min_spare_servers和pm.max_spare_servers之間調整php-fpm進程數
2、伺服器具體配置
對於我們的伺服器,選擇哪種執行方式比較好呢?事實上,跟Apache一樣,運行的PHP程序在執行完成後,或多或少會有內存泄露的問題。
這也是為什麼開始的時候一個php-fpm進程只佔用3M左右內存,運行一段時間後就會上升到20-30M的原因了。
對於內存大的伺服器(比如8G以上)來說,指定靜態的max_children實際上更為妥當,因為這樣不需要進行額外的進程數目控制,會提高效率。
因為頻繁開關php-fpm進程也會有時滯,所以內存夠大的情況下開靜態效果會更好。數量也可以根據 內存/30M 得到,比如8GB內存可以設置為100,
那麼php-fpm耗費的內存就能控制在 2G-3G的樣子。如果內存稍微小點,比如1G,那麼指定靜態的進程數量更加有利於伺服器的穩定。
這樣可以保證php-fpm只獲取夠用的內存,將不多的內存分配給其他應用去使用,會使系統的運行更加暢通。
對於小內存的伺服器來說,比如256M內存的VPS,即使按照一個20M的內存量來算,10個php-cgi進程就將耗掉200M內存,那系統的崩潰就應該很正常了。
因此應該盡量地控制php-fpm進程的數量,大體明確其他應用佔用的內存後,給它指定一個靜態的小數量,會讓系統更加平穩一些。或者使用動態方式,
因為動態方式會結束掉多餘的進程,可以回收釋放一些內存,所以推薦在內存較少的伺服器或VPS上使用。具體最大數量根據 內存/20M 得到。
比如說512M的VPS,建議pm.max_spare_servers設置為20。至於pm.min_spare_servers,則建議根據伺服器的負載情況來設置,比如伺服器上只是部署php環境的話,比較合適的值在5~10之間。
本伺服器配置
1、伺服器基本信息:
硬碟:數據盤30G、系統盤20G
內存:1.5G
CPU:雙核
系統:CentOS 6.3 64位
帶寬:獨享2M
2、部署的應用
Git、SVN、Apache、Tomcat、PHP、Nginx、mysql、JDK
3、優化後的參數
pm = dynamic
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
C. yum 安裝lamp怎麼升級php
centos6.5
1.yum安裝和源代碼編譯在使用的時候沒啥區別,但是安裝的過程就大相徑庭了,yum只需要3個命令就可以完成,源代碼需要13個包,還得加壓編譯,步驟很麻煩,而且當做有時候會出錯,源代碼編譯安裝大概需要2個小時,好處在於可以自己配置地址等一些參數,yum安裝半個小時搞定,一般不會出錯,更新也很方便。
2.我的機器是centosrelease5.964為的系統,一般機器都帶yum命令,並且yum包源都是可以用的,就是說不用你自己下載東西,直接yum-yinstall後面加上你所需要安裝的軟體,他會自動下載自動安裝,非常方便。例如yum-yinstallhttpd自動下載並安裝apache伺服器。lamp環境只需要安裝httpd,MySQL,PHP
3.首先更新一下yum-yupdate
4.用yum安裝Apache,Mysql,PHP.
4.1安裝Apache
yuminstallhttpdhttpd-devel
安裝完成後,用/etc/init.d/httpdstart啟動apache
設為開機啟動:chkconfighttpdon
4.2安裝mysql
yuminstallmysqlmysql-servermysql-devel
同樣,完成後,用/etc/init.d/mysqldstart啟動mysql
4.3設置mysql密碼
mysql>;USEmysql;
mysql>;UPDATEuserSETPassword=PASSWORD('newpassword')WHEREuser='root';
mysql>;FLUSHPRIVILEGES;
設置mysql密碼還可以用:mysql_secure_installation命令
4.4允許遠程登錄
mysql-uroot-p
EnterPassword:<yournewpassword>
mysql>GRANTALLPRIVILEGESON*.*TO'用戶名'@'%'IDENTIFIEDBY'密碼'WITHGRANTOPTION;
完成後就能用mysql-front遠程管理mysql了。
設為開機啟動
chkconfigmysqldon
5PHP5.4安裝
rpm-Uvhhttp://mirror.webtatic.com/yum/el6/latest.rpm(下載最新的源)
yuminstallphp54wphp54w-bcmathphp54w-cliphp54w-commonphp54w-develphp54w-fpmphp54w-gdphp54w-imapphp54w-ldapphp54w-mbstringphp54w-mcryptphp54w-mysqlphp54w-odbcphp54w-pdophp54w-pearphp54w-pecl-igbinaryphp54w-xmlphp54w-xmlrpcphp54w-opcachephp54w-intlphp54w-pecl-memcache安裝PHP對應的各種擴展;
使用yum安裝就是各種方便,用源碼安裝試了十幾次,各種bug無法解決
D. Centos php 擴展方式安裝gd庫的方法
網站的第二台伺服器跑的的環境主要是Python/Ruby,有時也需要簡單跑跑PHP腳本,所以也安裝了PHP,環境是Nginx+php-fpm,PHP是源碼編譯安裝的,所以是最小化安裝,甚至連mysqli擴展都沒有。今天需要用到GD庫,才發現沒GD庫環境,所以需要安裝這個擴展。對付單個擴展,單獨編譯動態載入是比較方便快捷的。安裝過程也比較繁雜,這個記錄一下,方便後來者。
首先說明,我的PHP是源碼編譯安裝的,可以參看 以源碼編譯的方式安裝PHP與php-fpm。
先安裝 gd 前置庫 : freetype ,jpegsrc,libpng。
1. freetype
復制代碼
代碼如下:
wget "http://download.savannah.gnu.org/releases/freetype/freetype-2.4.0.tar.bz2"
tar jxvf freetype-2.4.0.tar.bz2
cd freetype-2.4.0
./configure --prefix=/usr/local/freetype make make install
2. jpegsrc
復制代碼
代碼如下:
wget "http://www.ijg.org/files/jpegsrc.v9.tar.gz"
tar zxvf jpegsrc.v9.tar.gz
cd jpeg-9
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/jpeg make make install
mkdir -p /usr/local/jpeg/include
mkdir -p /usr/local/jpeg/lib
mkdir -p /usr/local/jpeg/bin
mkdir -p /usr/local/jpeg/man/man1
3. libpng
復制代碼
代碼如下:
wget "http://downloads.sourceforge.net/project/libpng/libpng12/1.2.50/libpng-1.2.50.tar.gz?r=http%3A%2F%2Fwww.libpng.org%2Fpub%2Fpng%2Flibpng.htmlts=1376631135use_mirror=nchc"
tar zxvf libpng-1.2.50.tar.gz
cd libpng-1.2.50
CFLAGS="-O3 -fPIC" ./configure --prefix=/usr/local/libpng make make install
接下來需要cd到php源碼的 gd 目錄,否則會報 cannot find config.m4 之類的錯誤。
復制代碼
代碼如下:
cd php-5.3.6
cd ext
cd gd
然後再這個目錄執行命令 /usr/local/php/bin/phpize。什麼時候需要用到 phpize 呢?當我們需要再加些模塊,又不想重新編譯php,這些我們就可以用phpize了。我的PHP安裝在 /usr/local/php/ 這個目錄里,可以根據個人情況修改。
復制代碼
代碼如下:
/usr/local/php/bin/phpize
現在可以進行單獨編譯安裝了:
復制代碼
代碼如下:
./configure --with-php-configure=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
或者
./configure --with-php-config=/usr/local/php/bin/php-config --with-jpeg-dir=/usr/local/jpeg --with-png-dir=/usr/local/libpng --with-freetype-dir=/usr/local/freetype
make make install
接著修改php.ini文件 在 ;extension=php_zip.dll 下面添加一行 extension=gd.so
重啟 Nginx 之後再看看是否安裝成功了。再執行 /usr/local/php/bin/php -m 查看gd模塊是否載入成功。
復制代碼
代碼如下:
service nginx restart
/usr/local/php/bin/php -m
console列出:
復制代碼
代碼如下:
[root@nowamagic gd]# /usr/local/php/bin/php -m
[PHP Moles]
Core
ctype
date
dom
ereg
fileinfo
filter
gd
……
看到gd了,說明gd庫安裝成功。
接下來只要重啟 php-fpm 即可:
復制代碼
代碼如下:
killall php-fpm
/usr/local/php/sbin/php-fpm
phpinfo()一下,看看。
OK,安裝成功。
E. php下載安裝教程(php安裝包下載)
linuxyum安裝php7.3先安裝前面的教程,再安裝後面的
參考教程1:
參考教程2:
安裝PHP
1、安裝PHP73
1.1、卸載舊版本PHP
yumremovephp*
1.2、安裝EPEL:
sudoyuminstallepel-release
1.3、安裝remi(選一個):
sudorpm-Uvh
rpm-Uvh
1.4、查看目前有php的什麼版本(可忽略)
sudoyumlistphp*
1.5、列出所有的php相關的rpm包(可忽略)
rpm-qa|grepphp
1.6、刪除php相關的rpm包(一次只能刪除一個)(可忽略)
rpm-ephp72w-mysqlnd-7.2.17-1.w7.x86_64
1.7、列出remi倉庫下所有PHP7.3可用模塊。(可忽略)
yum--enablerepo=remi-php73searchphp|grepphp73
1.8、安裝PHP7.3
yum--enablerepo=remi-php73installphp
1、安裝PHP7.3:
(解決yum安裝apache關聯不了PHP的問題,用以下命令安裝)
yum--enablerepo=remi-php73installphp
安裝模塊
yum--enablerepo=remi-php73installphp73-php-fpmphp73-php-cliphp73-php-bcmathphp73-php-gdphp73-php-jsonphp73-php-mbstringphp73-php-mcryptphp73-php-mysqlndphp73-php-opcachephp73-php-pdophp73-php-pecl-cryptophp73-php-pecl-mcryptphp73-php-pecl-geoipphp73-php-recodephp73-php-snmpphp73-php-soapphp73-php-xml
2、設置開機啟動、運行服務:
systemctlenablephp73-php-fpm
systemctlstartphp73-php-fpm
3、查找php.ini位置:
find/etc/opt/remi/php73-namephp.ini
/etc/opt/remi/php73/php.ini
找到apache的配置文件:httpd.conf
sudofind/-namehttpd.conf
位置如下:
/etc/httpd/conf/httpd.conf
5、PHP日常操作
systemctlrestartphp73-php-fpm#重啟
systemctlstartphp73-php-fpm#啟動
systemctlstopphp73-php-fpm#關閉
systemctlstatusphp73-php-fpm#檢查狀態
php-m#查看PHP已安裝拓展模塊
php-v#查看PHP版本
mysql下載安裝和PHP下載安裝問題這幾天在網上找了血關於MYSQL的教程.但怎麼看都不行.希望高手遠程教教我配了好多次,按這個順序這種配置一般都沒問題,不要覺得麻煩,細心一點15分鍾就可以配好,有問題可以給我留言。
首先:Apache的安裝配置(版本:apache_2.2.6-win32-x86-no_ssl)
直接按默認安裝,安裝時要關閉瀏覽器跟下載軟體,否則安裝完成後伺服器不能啟動,報不能綁定80埠的錯誤。啟動後在地址欄中輸入「」或「」,如果可以看到"ItWorks",說明安裝成功。
如果需要更改默認路徑,打開「C:.2conf」目錄下的httpd.conf文件,查找「DocumentRoot(這里有兩處都必須改,一處不是以此開頭),將其路徑修改成需要設置的訪問路徑,這里改為「D:/masterphp」(注意斜杠方向,與路徑方向不同)。
第二:PHP的安裝配置(版本:php-5.2.5-Win32)
下載後直接解壓就可以了,這里我們解壓到「C:ProgramFilesphp-5.2.5-Win32」目錄下。下面將PHP和Apache服務期連接:
(1)修改「C:ProgramFilesphp-5.2.5-Win32」目錄下"php.ini-recommened"文件名,改成"php.ini"
(2)將「php.ini」文件拷貝到Apache目錄下,即「C:.2」目錄下
(3)打開php.ini文件,修改以下幾個關鍵字
查詢extension_dir="./"修改為
extension_dir="C:ProgramFilesphp-5.2.5-Win32ext"
如果在顯示中文的時候出現亂碼,可以查詢;default_charset="iso-8859-1"修改為default_charset="gbk",注意要去掉前面的「;」
很多時候需要利用session對象來存儲數據,如session身份驗證、設計購物車等,因此還必須要找到另外一個屬性,即把
;session.save_path="/tmp"修改為
session.save_path="C:/ProgramFiles/php-5.2.5-Win32/session"
(session文件夾需手工創建,也可以創建其他的目錄)
查找display_errors和cgi.force_redirect,原始設置為
display_errors=off
;cgi.force_redirect=1
修改為
display_errors=ON
cgi.force_redirect=0
(display_errors屬性表示在運行時如果發生錯誤,是否會顯示錯誤信息。而cgi.force_redirect為0表示強制不運行在CGI模式下)
再將"C:/ProgramFiles/php-5.2.5-Win32"下的php5ts.dll文件拷貝到系統的windows/system32(WindowsXP);接著將"C:/ProgramFiles/php-5.2.5-Win32"下的php5apache2_2.dll(這是Apache的版本號,如果是2.0版本的則復制php5apache2.dll)文件復制到"C:.2moles"下,然後將下面的一段代碼插入到httpd.conf文件的最後
LoadMolephp5_molemoles/php5apache2_2.dll
AddTypeapplication/x-httpd-php.php
如果還想讓Apache執行其他後綴名,則可添加其他的類型,如下所示
AddTypeapplication/x-httpd-php.php4
AddTypeapplication/x-httpd-php.php3
AddTypeapplication/x-httpd-php.phtml
AddTypeapplication/x-httpd-php-souce.phps
Apache默認的連接文件名為"index.html",即如果在地址欄中輸入""和輸入""顯示結果一致,如果想增加其他的默認連接文件名,則在httpd.conf中找到"DirectoryIndex",原始設置如下:
DirectoryIndexindex.htmlindex.html.var
如果想支持default.php,則修改成如下格式:
DirectoryIndexdefault.phpindex.htmlindex.html.var
為了測試PHP配置是否成功,打開記事本輸入以下代碼:
?php
phpinfo()
?
將該代碼保存成version.php,拷貝到"d:master.php"目錄下,在地址欄輸入"",如果一切配置正常,可以看到PHP的各種信息
第三:MySQL的安裝配置(版本:mysql-5.0.45-win32)
選擇完全安裝,點下一步,其中有個密碼要設置。
啟動後若出現mysql標志,則表示安裝成功。
MySQL安裝成功後還需要同PHP連接上,因此,還需要進一步配置。
打開「C:.2」目錄下php.ini文件,查找"MySQL",修改以下幾個屬性
原始設置為:
mysql.default_port=
mysql.default_host=
mysql.default_user=
mysql.default_password=
修改為:
mysql.default_port=3306(網路埠,安裝時默認設置為3306)
mysql.default_host=localhost(default_host為服務期名稱,localhost表示本地機器)
mysql.default_user=root(default_user表示用戶名,root是默認的用戶名)
mysql.default_password=123456(即安裝MySQL時輸入的密碼)
修改了以上屬性後,還需要啟動PHP對MySQL支持模塊,在php.ini文件中查找"extension=php_mysql.dll"
原始設置為:
;extension=php_mysql.dll
修改為
extension=php_mysql.dll(即把分號去掉)
再將php_mysql.dll(php)和libmysql.dll(php)文件拷貝至c:winntsystem32中。
最後測試MySQL是否安裝成功,測試代碼如下:
?php
$link=mysql_connect('localhost','root',');
if(!$link)echo"失敗!";
elseecho"成功!";
mysql_close();
?
在地址欄輸入"",如果連接成功,則會顯示「成功!」
最後,把phpmyadmin解壓到web站點內,直接輸入回車即可進入。
怎麼安裝PHP環境?
LAMP/LNMP環境搭建
一.檢查系統環境
1.確認centos版本
[root@localhost~]#cat/etc/redhat-release
2.檢查是否安裝過apache
rpm-qa|grephttpd
或者:
apachectl-v
或者:
httpd-v
3.檢查是否安裝過Mysql
servicemysqldstart
如果未被識別則沒有安裝
如果系統安裝過,或者安裝失敗,清理一下系統
4.清理Mysql痕跡
yumremovemysql
rm-f/etc/my.cnf
5.卸載Apache包
rpm-qa|grephttpd
注意:如果是新的系統或者你從來沒有嘗試安裝過,則以上步驟省略
二.安裝Apache、PHP、Mysql
停止防火牆服務
[root@localhost~]#systemctlstopfirewalld.service
禁用防火牆開機啟動服務
[root@localhost~]#systemctldisablefirewalld.service
1.安裝apache
[root@localhost~]#yum-yinstallhttpd
2.安裝php
[root@localhost~]#yum-yinstallphp
3.安裝php-fpm
[root@localhost~]#yum-yinstallphp-fpm
4.安裝Mysql
[root@localhost~]#yum-yinstallmysql
5.安裝mysql-server
[root@localhost~]#yuminstallmariadb-server
CentOS7+版本將MySQL資料庫軟體從默認的程序列表中移除,用mariadb代替了,entos7配置教程上,大多都是安裝mariadb,因為centos7默認將mariadb視作mysql。
因為mysql被oracle收購後,原作者擔心mysql閉源,所以又寫了一個mariadb,這個資料庫可以理解為mysql的分支。如果需要安裝mariadb,只需通過yum就可。
6.安裝php-mysql
[root@localhost~]#yum-yinstallphp-mysql
三.安裝基本常用擴展包
1.安裝Apache擴展包
yum-yinstallhttpd-manualmod_sslmod_perlmod_auth_mysql
2.安裝PHP擴展包
yum-yinstallphp-gdphp-xmlphp-mbstringphp-ldapphp-pearphp-xmlrpcphp-devel
3.安裝Mysql擴展包
yum-yinstallmysql-connector-odbcmysql-devellibdbi-dbd-mysql
四.配置Apache、mysql開機啟動
重啟Apache、mysql服務(注意這里和centos6有區別,Cenots7+不能使用6的方式)
systemctlstarthttpd.service#啟動apache
systemctlstophttpd.service#停止apache
systemctlrestarthttpd.service#重啟apache
systemctlenablehttpd.service#設置apache開機啟動
重啟資料庫
#啟動MariaDB
[root@localhost~]#systemctlstartmariadb.service
#停止MariaDB
[root@localhost~]#systemctlstopmariadb.service
#重啟MariaDB
[root@localhost~]#systemctlrestartmariadb.service
#設置開機啟動
[root@localhost~]#systemctlenablemariadb.service
五.配置Mysql
初次安裝mysql是沒有密碼的,我們要設置密碼,mysql的默認賬戶為root
方式1:設置MySQL數據root賬戶的密碼:
[root@localhost~]#mysql_secure_installation
當出現如下提示時候直接按回車:
Entercurrentpasswordforroot
出現如下再次回車:
Setrootpassword?[Y/n]
出現如下提示輸入你需要設置的密碼,這里輸入了root,輸入密碼是不顯示的,回車後再輸入一次確認:
Newpassword:
接下來還會有四個確認,分別是:
Removeanonymoususers?[Y/n]
Disallowrootloginremotely?[Y/n]
?[Y/n]
Reloadprivilegetablesnow?[Y/n]
直接回車即可。
方式2:進入mysqlmysql-r
修改mysql密碼:setpasswordfor'root'@'localhost'=password('root');
mysql授權遠程連接(navicat等):grantallon*.*torootidentifiedby'root'
六.測試環境
我們在瀏覽器地址欄輸入,正常顯示,說明我們的lamp環境搭建成功
七.安裝nginx
yuminstallyum-priorities-y
wget
rpm-ivhnginx-release-centos-7-0.el7.ngx.noarch.rpm
yuminstallnginx
Nginx版本號可變更版本
八.配置nginx
1.nginx啟動,停止,重啟
systemctlstartnginx.service#啟動nginx
systemctlstopnginx.service#停止
systemctlrestartnginx.service#重啟
systemctlenablenginx.service#設置開機啟動
更改nginx埠號(根據自己需求)
cd/etc/nginx/conf.d/
vimdefault.conf
把listen80改成listen81
3.訪問即可看到nginx首頁
安裝完成訪問時候需要啟動php-fpm,不重啟訪問會出現下載文件,重啟命令如下
systemctlstartphp-fpm.service#啟動php-fpm
systemctlenablephp-fpm.service#設置開機啟動
4.更改nginx配置文件識別php
vi/etc/nginx/conf.d/default.conf,把之前的#給去掉就可以了,順手改一下
location~.php${
roothtml;
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME/usr/share/nginx/html/$fastcgi_script_name;
includefastcgi_params;
}
方法二安裝nginx
yuminstallnginx
啟動nginx,並設置為開機啟動
systemctlstartnginx
systemctlenablenginx
vim/etc/nginx/conf.d/default.conf
5.在/usr/share/nginx/html中新建一個test.php
訪問即可看到php頁面
修改完成配置記得啟動apache和php-fpm哦!
九.負載配置
upstreamsite{
server172.16.170.138;
server172.16.170.139;
}
server{
listen80;
server_namelocalhost;
#charsetkoi8-r;
#access_log/var/log/nginx/log/host.access.logmain;
location/{
root/usr/share/nginx/html;
indexindex.htmlindex.htm;
proxy_pass;
}
apache默認目錄/var/www/html
nginx默認目錄/usr/share/nginx/html
升級php版本
centos7默認安裝php是5.4
查看yum的可安裝的php版本列表
yumprovidesphp
開始升級PHP更新源:
rpm-Uvh
rpm-Uvh
yumremovephp-common-y#移除系統自帶的php-common
php72版本
yuminstall-yphp72wphp72w-opcachephp72w-xmlphp72w-mcryptphp72w-gdphp72w-develphp72w-mysqlphp72w-intlphp72w-mbstring
php56版本
yuminstall-yphp56wphp56w-opcachephp56w-xmlphp56w-mcryptphp56w-gdphp56w-develphp56w-mysqlphp56w-intlphp56w-mbstring#安裝依賴包
查看php版本
php-v
安裝phpfpm:
yuminstallphp72w-fpm
yumprovidesphp-fpm#因為我是准備搭建lnmp,所以安裝php-fpm,這里會提示多個安裝源,選擇5.6版本的安裝就可以了
yuminstallphp56w-fpm-5.6.31-1.w7.x86_64-y
systemctlstartphp-fpm.service【啟動】
sys