按照文章的步驟操作,可以幫助你在CentOS6.*系統上搭建一個LNMP環境或者LAMP環境。這些環境可以作為服務器的線上運行環境。
LNMP準備工作安裝wgetwget 是一個從網絡上自動下載文件的自由工具,支持通過 HTTP、HTTPS、FTP 三個最常見的TCP/IP協議下載,并可以可以使用HTTP代理。
sudo yum install wget安裝net-tools
最小化安裝CentOS7時如果無法使用ifconfig命令,則需要安裝net-tools(如果是安裝的CentOS6版本則無需安裝)
sudo yum install net-tools更新yum源
yum -y update安裝vim
sudo yum install vim配置顯示行號
vim ~/.vimrc輸入: set nu 后退出保存安裝Nginx安裝依賴
(1) 安裝 nginx 需要先將網址下載的源碼進行編譯,編譯依賴 gcc 環境,如果沒有 gcc 環境,則需要安裝gcc-c++。
(2) PCRE是一個Perl庫,中文 Perl兼容的html' target='_blank'>正則表達式庫 。安裝Nginx是為了使Nginx支持具備URI重寫功能的rewrite模塊,如果不安裝pcre庫,則Nginx無法使用rewrite模塊功能,Nginx的Rewrite模塊功能幾乎是企業應用必須。
(3) zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。
(4) OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協議,并提供豐富的應用程序供測試或其它目的使用。 nginx 不僅支持 http 協議,還支持 https(即在ssl協議上傳輸http),所以需要安裝 OpenSSL 庫 。
yum -y install gcc gcc-c++ zlib zlib-develyum -y install pcre pcre-devel openssl openssl-devel
說明:yum安裝方式安裝的pcre版本比較低,不過基本不影響使用
檢查基礎依賴包rpm -qa pcre pcre-develrpm -qa zlib zlib-develrpm -qa openssl openssl-develrpm -qa pcre pcre-devel編譯安裝Nginx
cd ~這里我們默認把安裝包都放在了/usr/src目錄下cd /usr/src #切換到軟件包目錄wget http://nginx.org/download/nginx-1.14.0.tar.gz #下載nginx源碼包useradd nginx -s /sbin/nologin -M #創建nginx用戶用于管理nginx程序tar zxvf nginx-1.14.0.tar.gz #解壓nginx源碼包cd nginx-1.14.0./configure /--user=nginx /--group=nginx /--prefix=/usr/local/nginx-1.14.0 /--with-http_stub_status_module /--with-http_ssl_modulemake #編譯make install #安裝cd /usr/localln -s nginx-1.14.0 nginx #創建nginx的軟鏈接配置環境變量
vim /etc/profileexport PATH= /usr/local/nginx/sbin:$PATH source /etc/profile開機自啟
vim /etc/rc.local# Nginx開機自啟/usr/local/nginx/sbin/nginx安裝說明
編譯Nginx軟件時,可以使用configure--help查看相關幫助。下面是本次編譯時指定的參數及簡單說明:
--prefix=PATH #設置安裝路勁--user=USER #進程用戶權限--group=GROUP #進程用戶組權限--with-http_stub_status_module #激活狀態信息--with-http_ssl_module #激活ssl功能語法檢查
安裝完Nginx后,并不能直接對外提供服務,需要先啟動Nginx服務才行,具體操作如下。
/usr/local/nginx/sbin/nginx -tNginx命令
/usr/local/nginx/sbin/nginx #啟動/usr/local/nginx/sbin/nginx -s stop #立即停止/usr/local/nginx/sbin/nginx -s quit #平滑停止/usr/local/nginx/sbin/nginx -s reload #重載配置/usr/local/nginx/sbin/nginx -s reopen #重開日志服務啟動檢查
sudo yum install lsoflsof -i :80關閉防火墻
CentOS6:service iptables stop 臨時關閉chkconfig --level 2345 iptables off 永久關閉CentOS7:systemctl stop firewalld.service #令關閉防火墻systemctl disable firewalld.service #關閉防火墻開機自啟動通過瀏覽器輸入IP測試是否成功安裝MySQL安裝依賴
(1)cmake是新版MySQL的編譯工具
sudo yum install gcc gcc-c++ cmake ncurses-devel 如下的幾個依賴在CentOS7中需要安裝,CentOS6不需要sudo yum install perl perl-devel autoconf編譯安裝MySQL
useradd -s /sbin/nologin -M mysql # 添加MySQL用戶wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.41.tar.gztar zxvf mysql-5.6.41.tar.gzcd mysql-5.6.41cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.41 /-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.41/tmp/mysql.sock /-DMYSQL_DATADIR=/usr/local/mysql-5.6.41/data /-DDEFAULT_CHARSET=utf8 /-DDEFAULT_COLLATION=utf8_general_ci /-DWITH_EXTRA_CHARSETS=all /-DWITH_MYISAM_STORAGE_ENGINE=1 /-DWITH_INNOBASE_STORAGE_ENGINE=1 /-DWITH_MEMORY_STORAGE_ENGINE=1 /-DWITH_READLINE=1 /-DWITH_INNODB_MEMCACHED=1 /-DWITH_DEBUG=OFF /-DWITH_ZLIB=bundled /-DENABLED_LOCAL_INFILE=1 /-DENABLED_PROFILING=ON /-DMYSQL_MAINTAINER_MODE=OFF /-DMYSQL_TCP_PORT=3306make make install配置
cd /usr/local/mysql-5.6.41chown mysql.mysql /usr/local/mysql-5.6.41/datamkdir tmpchown mysql.mysql /usr/local/mysql-5.6.41/tmprm -f /etc/my.cnfcp support-files/my-default.cnf /etc/my.cnfscripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql加入守護進程
cd /usr/localln -s mysql-5.6.41 mysqlcd /usr/local/mysqlcp support-files/mysql.server /etc/init.d/mysqldchkconfig --add mysqld配置環境變量
vim /etc/profileexport PATH= /usr/local/mysql/bin source /etc/profile啟動MySQL
service mysqld startmysql -u root -p #第一次登陸不需要密碼,回車即可set password for root@localhost = password( root #修改密碼安裝PHP安裝依賴
sudo yum install gcc gcc-c++ zip unzip libxml2 libxml2-devel curl-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd-devel bzip2 bzip2-devel編譯安裝PHP
cd ~/packagewget http://hk1.php.net/get/php-7.2.10.tar.gz/from/this/mirror -O php-7.2.10.tar.gztar zxvf php-7.2.10.tar.gzcd php-7.2.10./configure /--prefix=/usr/local/php-7.2.10 /--enable-fpm /--with-fpm-user=nginx /--with-fpm-group=nginx /--with-zlib /--enable-mysqlnd /--with-pdo-mysql=mysqlnd /--with-mysqli=mysqlnd /--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock /--with-gd /--with-png-dir /--with-jpeg-dir /--with-freetype-dir /--with-iconv-dir /--with-openssl /--with-curl /--enable-mbstring /--enable-static /--enable-zip /--enable-sockets /--enable-xml
make make install
編譯參數詳解
./configure /--prefix=/usr/local/php-7.2.7 / # 指定安裝路徑--enable-fpm / # 表示激活PHP-FPM方式服務,即FactCGI方式運行PHP服務。--with-fpm-user=nginx / # 指定PHP-FPM進程管理的用戶為www,此處最好和Nginx服務用戶統一。--with-fpm-group=nginx / # 指定PHP-FPM進程管理用戶組為www,此處最好和Nginx服務用戶組統一。--with-zlib / # 打開zlib庫的支持,用于http壓縮傳輸--enable-mysqlnd /--with-pdo-mysql=mysqlnd /--with-mysqli=mysqlnd /--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock /--with-gd / # 打開gd庫的支持--with-png-dir /--with-jpeg-dir /--with-freetype-dir /--with-openssl / # 打開openssl,加密傳輸時用到--with-curl / # 打開curl瀏覽工具的支持 --enable-mbstring / # 多字節,字符串的支持--enable-static / # 生成靜態鏈接庫--enable-zip / # 打開對zip的支持--enable-sockets / # 打開 sockets 支持--enable-xml配置
cd /usr/localln -s php-7.2.10 php cp /usr/src/php-7.2.10/php.ini-development /usr/local/php-7.2.10/lib/php.ini vim /usr/local/php/lib/php.ini date.timezone = PRC (大約在932行) expose_php = Off #避免PHP信息暴露在http頭中(大約369行) display_errors = Off(生產環境設置為off,開發環境就設置為On,便于調試) 說明:設置了dispaly_errors為off后,需要在php-fpm.conf中開啟錯誤日志記錄路徑error_log = log/php-fpm.logcd php cp etc/php-fpm.conf.default etc/php-fpm.confcd /usr/local/php/etc/php-fpm.d/cp www.conf.default www.confcd /usr/local/phpsbin/php-fpmps -e | grep php-fpm如果在編譯PHP時指定了--with-mysql=mysqlnd和--with-pdo-mysql=mysqlnd的參數,那么在生產中可能會遇到socket連接問題,解決辦法是在php.ini里加入命令: pdo_mysql.default_socket=/usr/local/mysql/tmp/mysql.sock最好是在編譯PHP的時候,指定mysql.socket的位置:--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock開機自啟
vim /etc/rc.local# PHP-FPM自動啟動/usr/local/php/sbin/php-fpm管理PHP-FPM
記錄pid
vi /usr/local/php/etc/php-fpm.confpid = run/php-fpm.piderror_log = log/php-fpm.log #24行這個在php.ini設置display_errors = Off時啟用設置完之后重啟服務器向進程發送信號,就可以完成進程管理停止: kill -INT `cat /usr/local/php/var/run/php-fpm.pid`平滑停止: kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid`重啟:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`重新打開日志:kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid`配置Nginx和PHP關聯
nginx.conf配置
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;
# 設置讀取客戶端請求頭數據的超時時間。此處的數值為15,其單位是秒,為經驗參考值 client_header_timeout 15; # 設置讀取客戶端請求體的超時時間 client_body_timeout 15; # 指定響應客戶端的超時時間 send_timeout 25; # 上傳文件大小限制 client_max_body_size 8m; #壓縮配置 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/css text/xml application/javascript; gzip_vary on; #include extra/gzip.config; #log_format main $remote_addr - $remote_user [$time_local] $request # $status $body_bytes_sent $http_referer # $http_user_agent $http_x_forwarded_for #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; include extra/*.conf;}
在conf目錄下新建一個extra目錄,專門用于配置虛擬機;
例如,我們想配置一個www.nginx.con的域名,我們可以在extra下新建一個nginx.conf
server { listen 80; server_name www.nginx.com; root html/blog/public; #access_log logs/host.access.log main; location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 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;}Nginx優化
# 開啟gzip壓縮功能gzip on;# 設置允許壓縮的頁面最小字節數,頁面字節數從header頭的Content-Length中獲取。默認是0,表示不管頁面多大都進行壓縮。建議設置成1K,如果小于1K可能會越壓越大。gzip_min_length 1k;# 壓縮緩沖區大小。表示申請4個單位為32k的內存作為壓縮結果流緩存,默認值是申請與原始數據大小相同的內存來存儲gzip壓縮結果gzip_buffers 4 32k;# 壓縮版本(默認1.1,前端為squid2.5時使用1.0),用于設置識別HTTP協議版本,默認是1.1,目前大部分瀏覽器已經支持GZIP解壓,使用默認即可gzip_http_version 1.1;# 壓縮比率。用來指定gzip壓縮比,1壓縮比最小,處理速度最快; 9壓縮比最大,傳輸速度快,但處理最慢,也比較消耗CPU資源。gzip_comp_level 2;# 指定壓縮類型gzip_types text/css text/xml application/javascript;# header支持。該選項可以讓前端的緩存服務器緩存經過gzip壓縮的頁面,例如用Squid緩存經過Nginx壓縮的數據gzip_vary on;LAMP安裝依賴
sudo yum install gcc gcc-c++ perl perl-devel expat expat-devel autoconf libtool openssl openssl-devel安裝apr
下載地址:http://apr.apache.orgtar -zxvf apr-1.6.3.tar.gzcd apr-1.6.3./configure --prefix=/usr/local/aprmake make install安裝apr-util
下載地址:http://apr.apache.org/tar -zxvf apr-util-1.6.1.tar.gzcd apr-util-1.6.1./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/aprmake make install安裝pcre
下載地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/tar zxvf pcre-8.42.tar.gzcd pcre-8.42./configure --prefix=/usr/local/pcremake make install安裝Apache
tar zxvf httpd-2.4.33.tar.gzcd httpd-2.4.33./configure /--prefix=/usr/local/apache /--enable-ssl /--enable-so /--with-apr=/usr/local/apr /--with-apr-util=/usr/local/apr-util /--with-pcre=/usr/local/pcremake make install配置環境變量
vi /etc/profileexport PATH= $PATH:/usr/local/apache/bin source /etc/profile開機自啟
vim /etc/rc.d/rc.local/usr/local/apache/bin/apachectl start配置
cp /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/httpd.conf.bakcp /usr/local/apache/conf/extra/httpd-vhosts.conf /usr/local/apache/conf/extra/httpd-vhosts.conf.bakvi /usr/local/apache/conf/httpd.conf去掉152行前面的#號,開啟重寫模塊去掉194行前面的#號,去除錯誤信息239行允許重寫 AllowOverride All開啟Apache:apachectl -k start關閉防火墻
CentOS6:service iptables stop 臨時關閉chkconfig --level 2345 iptables off 永久關閉CentOS7:systemctl stop firewalld.service #令關閉防火墻systemctl disable firewalld.service #關閉防火墻開機自啟動通過瀏覽器輸入IP測試成功安裝MySQL安裝依賴
(1)cmake是新版MySQL的編譯工具
sudo yum install gcc gcc-c++ cmake ncurses-devel 如下的幾個依賴在CentOS7中需要安裝,CentOS6不需要sudo yum install perl perl-devel autoconf編譯安裝MySQL
useradd -s /sbin/nologin -M mysql # 添加MySQL用戶cd mysql-5.6.40cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.40 /-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.40/tmp/mysql.sock /-DMYSQL_DATADIR=/usr/local/mysql-5.6.40/data /-DDEFAULT_CHARSET=utf8 /-DDEFAULT_COLLATION=utf8_general_ci /-DWITH_EXTRA_CHARSETS=all /-DWITH_MYISAM_STORAGE_ENGINE=1 /-DWITH_INNOBASE_STORAGE_ENGINE=1 /-DWITH_MEMORY_STORAGE_ENGINE=1 /-DWITH_READLINE=1 /-DWITH_INNODB_MEMCACHED=1 /-DWITH_DEBUG=OFF /-DWITH_ZLIB=bundled /-DENABLED_LOCAL_INFILE=1 /-DENABLED_PROFILING=ON /-DMYSQL_MAINTAINER_MODE=OFF /-DMYSQL_TCP_PORT=3306make install配置
cd /usr/local/mysql-5.6.40chown mysql.mysql /usr/local/mysql-5.6.40/datamkdir tmpchown mysql.mysql /usr/local/mysql-5.6.40/tmprm -f /etc/my.cnfcp support-files/my-default.cnf /etc/my.cnfscripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql加入守護進程
cd /usr/localln -s mysql-5.6.40 mysqlcd //usr/local/mysqlcp support-files/mysql.server /etc/init.d/mysqldchkconfig --add mysqld配置環境變量
vi /etc/profileexport PATH= /usr/local/mysql/bin source /etc/profile啟動MySQL
service mysqld startmysql -u root -p #第一次登陸不需要密碼,回車即可set password for root@localhost = password( root #修改密碼安裝PHP編譯安裝PHP
tar zxvf php-7.2.3.tar.gzcd php-7.2.3./configure /--prefix=/usr/local/php /--enable-mysqlnd /--with-mysqli=mysqlnd /--with-pdo-mysql=mysqlnd /--with-mysql-sock=/usr/local/mysql/tmp/mysql.sock /--with-apxs2=/usr/local/apache/bin/apxs /--with-zlib /--with-gd /--with-png-dir /--with-jpeg-dir /--with-freetype-dir /--with-openssl /--enable-mbstring /--enable-xml /--enable-zip /--enable-sockets /--with-curlmake make install配置Apache與PHP關聯
vi /usr/local/apache/conf/httpd.conf# 加入 在 加載了PHP模塊之后 FilesMatch /.php$ SetHandler application/x-httpd-php /FilesMatch # 保存,退出,重啟配置環境變量
vi /etc/profileexport PATH= $PATH:/usr/local/php/bin source /etc/profilecp /root/package/php-7.2.3/php.ini-development /usr/local/php/lib/php.inivi /usr/local/php/lib/php.inidate.timezone = PRC (大約在932行)配置虛擬主機
vi /usr/local/apache/conf/httpd.conf258行,默認首頁加入index.php483行,開啟虛擬主機支持vi /usr/local/apache/conf/extra/httpd-vhosts.confvi /usr/local/apache/conf/extra/httpd-vhosts.conf VirtualHost *:80 ServerAdmin www.huiwan.com DocumentRoot /mnt/hgfs/web/huiwan ServerName www.huiwan.com #ErrorLog logs/dummy-host2.example.com-error_log #CustomLog logs/dummy-host2.example.com-access_log common Directory /mnt/hgfs/web/huiwan Options indexes Multiviews AllowOverride All Require all granted /Directory /VirtualHost
以上就是本篇的全部內容,更多相關教程請訪問php編程從入門到精通全套視頻教程,php實戰視頻教程,bootstrap視頻教程!
以上就是PHP環境如何搭建?PHP環境搭建(詳解)的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答