|
導(dǎo)讀網(wǎng)頁的本質(zhì)就是超級文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立... 網(wǎng)頁的本質(zhì)就是超級文本標(biāo)記語言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。因而,超級文本標(biāo)記語言是萬維網(wǎng)(Web)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級文本標(biāo)記語言之所以稱為超文本標(biāo)記語言,是因為文本中包含了所謂“超級鏈接”點。 PHP環(huán)境如何搭建?本篇文章給大家?guī)淼膬?nèi)容是PHP環(huán)境如何搭建?PHP環(huán)境搭建(詳解)。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有所助。按照文章的步驟操作,可以幫助你在CentOS6.*系統(tǒng)上搭建一個LNMP環(huán)境或者LAMP環(huán)境。這些環(huán)境可以作為服務(wù)器的線上運行環(huán)境。 LNMP準(zhǔn)備工作安裝wgetwget 是一個從網(wǎng)絡(luò)上自動下載文件的自由工具,支持通過 HTTP、HTTPS、FTP 三個最常見的TCP/IP協(xié)議下載,并可以可以使用HTTP代理。 sudo yum install wget 安裝net-tools最小化安裝CentOS7時如果無法使用ifconfig命令,則需要安裝net-tools(如果是安裝的CentOS6版本則無需安裝) sudo yum install net-tools 更新yum源yum -y update 安裝vimsudo yum install vim 配置顯示行號vim ~/.vimrc 輸入: set nu 后退出保存 安裝Nginx安裝依賴(1) 安裝 nginx 需要先將官網(wǎng)下載的源碼進行編譯,編譯依賴 gcc 環(huán)境,如果沒有 gcc 環(huán)境,則需要安裝gcc-c++。 (2) PCRE是一個Perl庫,中文"Perl兼容的正則表達式庫"。安裝Nginx是為了使Nginx支持具備URI重寫功能的rewrite模塊,如果不安裝pcre庫,則Nginx無法使用rewrite模塊功能,Nginx的Rewrite模塊功能幾乎是企業(yè)應(yīng)用必須。 (3) zlib 庫提供了很多種壓縮和解壓縮的方式, nginx 使用 zlib 對 http 包的內(nèi)容進行 gzip ,所以需要在 Centos 上安裝 zlib 庫。 (4) OpenSSL 是一個強大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及 SSL 協(xié)議,并提供豐富的應(yīng)用程序供測試或其它目的使用。 nginx 不僅支持 http 協(xié)議,還支持 https(即在ssl協(xié)議上傳輸http),所以需要安裝 OpenSSL 庫 。 yum -y install gcc gcc-c++ zlib zlib-devel yum -y install pcre pcre-devel openssl openssl-devel 說明:yum安裝方式安裝的pcre版本比較低,不過基本不影響使用 檢查基礎(chǔ)依賴包rpm -qa pcre pcre-devel rpm -qa zlib zlib-devel rpm -qa openssl openssl-devel rpm -qa pcre pcre-devel 編譯安裝Nginxcd ~ 這里我們默認(rèn)把安裝包都放在了/usr/src目錄下 cd /usr/src #切換到軟件包目錄 wget https://nginx.org/download/nginx-1.14.0.tar.gz #下載nginx源碼包 useradd nginx -s /sbin/nologin -M #創(chuàng)建nginx用戶用于管理nginx程序 tar zxvf nginx-1.14.0.tar.gz #解壓nginx源碼包 cd nginx-1.14.0 #預(yù)編譯 ./configure \ --user=nginx \ --group=nginx \ --prefix=/usr/local/nginx-1.14.0 \ --with-http_stub_status_module \ --with-http_ssl_module make #編譯 make install #安裝 cd /usr/local ln -s nginx-1.14.0 nginx #創(chuàng)建nginx的軟鏈接 配置環(huán)境變量vim /etc/profile export PATH="/usr/local/nginx/sbin:$PATH" source /etc/profile 開機自啟vim /etc/rc.local # Nginx開機自啟 /usr/local/nginx/sbin/nginx & 安裝說明編譯Nginx軟件時,可以使用configure--help查看相關(guān)幫助。下面是本次編譯時指定的參數(shù)及簡單說明: --prefix=PATH #設(shè)置安裝路勁 --user=USER #進程用戶權(quán)限 --group=GROUP #進程用戶組權(quán)限 --with-http_stub_status_module #激活狀態(tài)信息 --with-http_ssl_module #激活ssl功能 語法檢查安裝完Nginx后,并不能直接對外提供服務(wù),需要先啟動Nginx服務(wù)才行,具體操作如下。 /usr/local/nginx/sbin/nginx -t Nginx命令/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 #重開日志 服務(wù)啟動檢查sudo yum install lsof lsof -i :80 關(guān)閉防火墻CentOS6: service iptables stop 臨時關(guān)閉 chkconfig --level 2345 iptables off 永久關(guān)閉 CentOS7: systemctl stop firewalld.service #令關(guān)閉防火墻 systemctl disable firewalld.service #關(guān)閉防火墻開機自啟動 通過瀏覽器輸入IP測試是否成功 安裝MySQL安裝依賴(1)cmake是新版MySQL的編譯工具 sudo yum install gcc gcc-c++ cmake ncurses-devel 如下的幾個依賴在CentOS7中需要安裝,CentOS6不需要 sudo yum install perl perl-devel autoconf 編譯安裝MySQLuseradd -s /sbin/nologin -M mysql # 添加MySQL用戶 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.41.tar.gz tar zxvf mysql-5.6.41.tar.gz cd mysql-5.6.41 cmake -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=3306 make && make install 配置cd /usr/local/mysql-5.6.41 chown mysql.mysql /usr/local/mysql-5.6.41/data mkdir tmp chown mysql.mysql /usr/local/mysql-5.6.41/tmp rm -f /etc/my.cnf cp support-files/my-default.cnf /etc/my.cnf scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql 加入守護進程cd /usr/local ln -s mysql-5.6.41 mysql cd /usr/local/mysql cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld 配置環(huán)境變量vim /etc/profile export PATH="/usr/local/mysql/bin" source /etc/profile 啟動MySQLservice mysqld start
mysql -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 編譯安裝PHPcd ~/package wget http://hk1.php.net/get/php-7.2.10.tar.gz/from/this/mirror -O php-7.2.10.tar.gz tar zxvf php-7.2.10.tar.gz cd 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 編譯參數(shù)詳解 ./configure \ --prefix=/usr/local/php-7.2.7 \ # 指定安裝路徑 --enable-fpm \ # 表示激活PHP-FPM方式服務(wù),即FactCGI方式運行PHP服務(wù)。 --with-fpm-user=nginx \ # 指定PHP-FPM進程管理的用戶為www,此處最好和Nginx服務(wù)用戶統(tǒng)一。 --with-fpm-group=nginx \ # 指定PHP-FPM進程管理用戶組為www,此處最好和Nginx服務(wù)用戶組統(tǒng)一。 --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 \ # 多字節(jié),字符串的支持 --enable-static \ # 生成靜態(tài)鏈接庫 --enable-zip \ # 打開對zip的支持 --enable-sockets \ # 打開 sockets 支持 --enable-xml 配置cd /usr/local ln -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(生產(chǎn)環(huán)境設(shè)置為off,開發(fā)環(huán)境就設(shè)置為On,便于調(diào)試) 說明:設(shè)置了dispaly_errors為off后,需要在php-fpm.conf中開啟錯誤日志記錄路徑error_log = log/php-fpm.log cd php cp etc/php-fpm.conf.default etc/php-fpm.conf cd /usr/local/php/etc/php-fpm.d/ cp www.conf.default www.conf cd /usr/local/php sbin/php-fpm ps -e | grep php-fpm 如果在編譯PHP時指定了--with-mysql=mysqlnd和--with-pdo-mysql=mysqlnd的參數(shù),那么在生產(chǎn)中可能會遇到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.conf pid = run/php-fpm.pid error_log = log/php-fpm.log #24行這個在php.ini設(shè)置display_errors = Off時啟用 設(shè)置完之后重啟服務(wù)器 向進程發(fā)送信號,就可以完成進程管理 停止: 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關(guān)聯(lián)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;
events {
use epoll;
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#隱藏Nginx軟件版本號
server_tokens off;
#激活tcp_nodelay功能,提高I/O性能
tcp_nodelay on;
# 設(shè)置讀取客戶端請求頭數(shù)據(jù)的超時時間。此處的數(shù)值為15,其單位是秒,為經(jīng)驗參考值
client_header_timeout 15;
# 設(shè)置讀取客戶端請求體的超時時間
client_body_timeout 15;
# 指定響應(yīng)客戶端的超時時間
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優(yōu)化# 開啟gzip壓縮功能 gzip on; # 設(shè)置允許壓縮的頁面最小字節(jié)數(shù),頁面字節(jié)數(shù)從header頭的Content-Length中獲取。默認(rèn)是0,表示不管頁面多大都進行壓縮。建議設(shè)置成1K,如果小于1K可能會越壓越大。 gzip_min_length 1k; # 壓縮緩沖區(qū)大小。表示申請4個單位為32k的內(nèi)存作為壓縮結(jié)果流緩存,默認(rèn)值是申請與原始數(shù)據(jù)大小相同的內(nèi)存來存儲gzip壓縮結(jié)果 gzip_buffers 4 32k; # 壓縮版本(默認(rèn)1.1,前端為squid2.5時使用1.0),用于設(shè)置識別HTTP協(xié)議版本,默認(rèn)是1.1,目前大部分瀏覽器已經(jīng)支持GZIP解壓,使用默認(rèn)即可 gzip_http_version 1.1; # 壓縮比率。用來指定gzip壓縮比,1壓縮比最小,處理速度最快; 9壓縮比最大,傳輸速度快,但處理最慢,也比較消耗CPU資源。 gzip_comp_level 2; # 指定壓縮類型 gzip_types text/css text/xml application/javascript; # header支持。該選項可以讓前端的緩存服務(wù)器緩存經(jīng)過gzip壓縮的頁面,例如用Squid緩存經(jīng)過Nginx壓縮的數(shù)據(jù) gzip_vary on; LAMP安裝依賴sudo yum install gcc gcc-c++ perl perl-devel expat expat-devel autoconf libtool openssl openssl-devel 安裝apr下載地址:https://apr.apache.org tar -zxvf apr-1.6.3.tar.gz cd apr-1.6.3 ./configure --prefix=/usr/local/apr make && make install 安裝apr-util下載地址:https://apr.apache.org/ tar -zxvf apr-util-1.6.1.tar.gz cd apr-util-1.6.1 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install 安裝pcre下載地址:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ tar zxvf pcre-8.42.tar.gz cd pcre-8.42 ./configure --prefix=/usr/local/pcre make && make install 安裝Apachetar zxvf httpd-2.4.33.tar.gz cd 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/pcre make && make install 配置環(huán)境變量vi /etc/profile export 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.bak cp /usr/local/apache/conf/extra/httpd-vhosts.conf /usr/local/apache/conf/extra/httpd-vhosts.conf.bak vi /usr/local/apache/conf/httpd.conf 去掉152行前面的#號,開啟重寫模塊 去掉194行前面的#號,去除錯誤信息 239行允許重寫 AllowOverride All 開啟Apache: apachectl -k start 關(guān)閉防火墻CentOS6: service iptables stop 臨時關(guān)閉 chkconfig --level 2345 iptables off 永久關(guān)閉 CentOS7: systemctl stop firewalld.service #令關(guān)閉防火墻 systemctl disable firewalld.service #關(guān)閉防火墻開機自啟動 通過瀏覽器輸入IP測試成功 安裝MySQL安裝依賴(1)cmake是新版MySQL的編譯工具 sudo yum install gcc gcc-c++ cmake ncurses-devel 如下的幾個依賴在CentOS7中需要安裝,CentOS6不需要 sudo yum install perl perl-devel autoconf 編譯安裝MySQLuseradd -s /sbin/nologin -M mysql # 添加MySQL用戶 cd mysql-5.6.40 cmake -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=3306 make make install 配置cd /usr/local/mysql-5.6.40 chown mysql.mysql /usr/local/mysql-5.6.40/data mkdir tmp chown mysql.mysql /usr/local/mysql-5.6.40/tmp rm -f /etc/my.cnf cp support-files/my-default.cnf /etc/my.cnf scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql 加入守護進程cd /usr/local ln -s mysql-5.6.40 mysql cd //usr/local/mysql cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld 配置環(huán)境變量vi /etc/profile export PATH="/usr/local/mysql/bin" source /etc/profile 啟動MySQLservice mysqld start
mysql -u root -p #第一次登陸不需要密碼,回車即可
set password for root@localhost = password('root'); #修改密碼安裝PHP編譯安裝PHPtar zxvf php-7.2.3.tar.gz cd 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-curl make && make install 配置Apache與PHP關(guān)聯(lián)vi /usr/local/apache/conf/httpd.conf
# 加入 在 加載了PHP模塊之后
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
# 保存,退出,重啟配置環(huán)境變量vi /etc/profile export PATH="$PATH:/usr/local/php/bin" source /etc/profile cp /root/package/php-7.2.3/php.ini-development /usr/local/php/lib/php.ini vi /usr/local/php/lib/php.ini date.timezone = PRC (大約在932行) 配置虛擬主機vi /usr/local/apache/conf/httpd.conf
258行,默認(rèn)首頁加入index.php
483行,開啟虛擬主機支持
vi /usr/local/apache/conf/extra/httpd-vhosts.conf
vi /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>以上就是本篇的全部內(nèi)容,更多相關(guān)教程請訪問php編程從入門到精通全套視頻教程,php實戰(zhàn)視頻教程,bootstrap視頻教程! 以上就是PHP環(huán)境如何搭建?PHP環(huán)境搭建(詳解)的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章! 網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護的網(wǎng)站。 |
溫馨提示:喜歡本站的話,請收藏一下本站!