摘要:安裝系統(tǒng)本次安裝的是的最小化版本,以下操作在用戶下進行。在搭建完該環(huán)境后,筆者使用作為開發(fā),配置使其可以直接調(diào)試虛擬機上的代碼即開發(fā)環(huán)境下代碼是運行在虛擬機上的。通過該方法,可以最大程度地確保開發(fā)環(huán)境與生產(chǎn)環(huán)境的一致性。
安裝系統(tǒng)
本次安裝的是Centos7.3的最小化版本,以下操作在root用戶下進行。在搭建完該環(huán)境后,筆者使用phpstorm作為開發(fā)ide,配置phpstorm使其可以直接調(diào)試虛擬機上的代碼(即開發(fā)環(huán)境下代碼是運行在虛擬機上的)。通過該方法,可以最大程度地確保開發(fā)環(huán)境與生產(chǎn)環(huán)境的一致性。(phpstrom xdebug的配置請參考官方文檔phpstorm上使用debug)
網(wǎng)絡(luò)配置 1.動態(tài)ip配置(nat或橋接)進入/etc/sysconfig/network-scripts,找到網(wǎng)卡對應(yīng)的配置文件(eg:ifcfg-ens0s3),配置下面的內(nèi)容
TYPE=Ethernet PROXY_MEHTOD=none BROWSER_ONLY=no BOOTPROTO=dpcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens0s3 UUID=ac3c6922-c33b-4f8b-8d7f-13a958b0ffff(這里按照已有的,不需要更改) DEVICE=ens0s3 ONBOOT=yes2.host-only網(wǎng)絡(luò)配置
在vm中添加一個host-only網(wǎng)絡(luò),并將其分配給相應(yīng)的虛擬機
進入虛擬機后通過ip addr命令可以看到多了一個網(wǎng)絡(luò)接口(假設(shè)為enp0s8),為接口生成uuid(uuidgen enp0s8)(ac3c6922-c33b-4f8b-8d7f-13a958b0807f)
在/etc/sysconfig/network-scripts下添加相應(yīng)的網(wǎng)絡(luò)接口配置文件
TYPE=Ethernet PROXY_MEHTOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens0s8 UUID=ac3c6922-c33b-4f8b-8d7f-13a958b0807f DEVICE=ens0s8 ONBOOT=yes IPADDR=192.168.56.102 GATEWAY=192.168.56.1 NETMASK=255.255.255.03.重啟網(wǎng)絡(luò)
重啟網(wǎng)絡(luò):systemctl restart network
軟件源配置筆者使用了阿里的軟件源,按照https://opsx.alibaba.com/mirror的方法進行操作即可
添加epel源方法1:
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo yum clean all yum makecache
方法2:
wget http://d.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -ivh ./epel-release-latest-7.noarch.rpm yum clean all yum makecache更新系統(tǒng)
執(zhí)行以下命令:
sudo yum update sudo yum upgrade虛擬機增強功能與共享文件夾創(chuàng)建 安裝增強功能(guest additions)
1.安裝kernel-devel和gcc :sudo yum install -y "kernel-devel-$(uname -r)" gcc bzip2 2.加載guest additions光盤 3.mkdir /mnt/cdrom 4.mount -t auto -r /dev/cdrom /mnt/cdrom 5.cd /mnt/cdrom 6.sudo sh ./VBoxLinuxAdditions.run(若執(zhí)行失敗按照提示安裝相應(yīng)的依賴)
若出現(xiàn)kernel-devel版本不符合要求的情況,可以到http://rpm.pbone.net下載相應(yīng)的rpm包,然后安裝(eg : rpm -Uvh kernel-devel-3.10.0-514.el7.x86_64.rpm)
添加共享文件夾配置virtualbox的共享文件夾
進入centos后執(zhí)行:mount -t vboxsf shared_file [共享文件夾名] [掛載的目錄] (eg : mount -t vboxsf php /data/php)
設(shè)置開機自動掛載
1.在/opt/onbootscript/(自己新建該目錄)下添加開機啟動腳本(mount.sh,需具備可執(zhí)行權(quán)限),包含以下命令 mount -t vboxsf php /data/php 2.在文件/etc/rc.local中(以root用戶)追加 : /opt/onbootscript/mount.sh 3.chmod +x /etc/rc.d/rc.localSelinux設(shè)置
開機關(guān)閉SELinux : 編輯/etc/selinux/config文件,將SELINUX的值設(shè)置為disabled
安裝gcc和開發(fā)環(huán)境yum groupinstall "Development Tools"
安裝nginx 通過yum安裝yum install nginx
systemctl start nginx
查看yum安裝的文件 : rpm -ql nginx
下載相應(yīng)的源碼包并且安裝依賴 : yum install pcre pcre-devel zlib zlib-devel openssl openssl-devel
進入源碼目錄,執(zhí)行./configure --user=nobody --group=nobody --prefix=/usr/local/nginx-1.xx.xx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module
執(zhí)行make
執(zhí)行make install >& LOG_make_install
創(chuàng)建一個軟鏈接/usr/local/nginx指向/usr/local/nginx-1.xx.xx: ln -s /usr/local/nginx-1.xx.xx /usr/local/nginx
常用命令修改配置后重新加載生效 :/usr/local/nginx/sbin/nginx -s reload
重新打開日志文件 : /usr/local/nginx/sbin/nginx -s reopen
測試nginx配置文件是否正確 : /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
啟動nginx : /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
快速停止nginx : /usr/local/nginx/sbin/nginx -s stop
完整有序的停止nginx : /usr/local/nginx/sbin/nginx -s quit
其他的停止nginx 方式:
ps -ef | grep nginx kill -QUIT 主進程號 :從容停止Nginx kill -TERM 主進程號 :快速停止Nginx pkill -9 nginx :強制停止Nginx
平滑重啟nginx :kill -HUP 主進程號
將nginx添加至systemctl若是通過yum安裝的,則已經(jīng)可以使用systemctl控制nginx
修改nginx配置文件,開啟pid : pid /var/run/nginx.pid;
先關(guān)閉nginx服務(wù)
配置服務(wù),在/usr/lib/systemd/system/新建nginx.service文件,vim編輯如下`
[Unit] Description=nginx - high performance web server After=network.target remote-fs.target nss-lookup.target [Service] Type=forking PIDFile=/var/run/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/usr/local/nginx/sbin/nginx -s stop ExecQuit=/usr/local/nginx/sbin/nginx -s quit PrivateTmp=true [Install] WantedBy=multi-user.target 以上配置的說明 : 1.[Unit]部分主要是對這個服務(wù)的說明,內(nèi)容包括Description和After,Description用于描述服務(wù),After用于描述服務(wù)類別 2.[Service]部分是服務(wù)的關(guān)鍵,是服務(wù)的一些具體運行參數(shù)的設(shè)置,這里Type=forking是后臺運行的形式,PIDFile為存放PID的文件路徑,ExecStart為服務(wù)的具體運行命令,ExecReload為重啟命令,ExecStop為停止命令,PrivateTmp=True表示給服務(wù)分配獨立的臨時空間,注意:[Service]部分的啟動、重啟、停止命令全部要求使用絕對路徑,使用相對路徑則會報錯! 3.[Install]部分是服務(wù)安裝的相關(guān)設(shè)置,可設(shè)置為多用戶的`
服務(wù)腳本按照上面編寫完成后,以754的權(quán)限保存在/usr/lib/systemd/system目錄下,然后執(zhí)行(修改或新增文件需要執(zhí)行以下語句才能生效) systemctl daemon-reload
防火墻設(shè)置因為防火墻的存在,所以默認情況下無法訪問nginx監(jiān)聽的端口
對外開放80端口firewall-cmd --zone=public --add-port=80/tcp --permanent
說明 :
firewall-cmd : linux中提供的操作firewall的工具
--zone : 指定作用域
--add-port=80/tcp : 添加的端口,格式為:端口/通訊協(xié)議
--permanent : 表示永久生效,沒有此參數(shù)重啟后會失效
重啟防火墻systemctl restart firewalld
安裝mysqlMySQL的編譯需要好久,筆者沒有采用編譯安裝,安裝方法采用了官方文檔的方法 : 安裝mysql
安裝php此次共安裝了3個版本的php,包括php5.4,php7.0,php7.1
準備工作下載源碼包 : http://php.net/releases/
安裝依賴包 : yum install gcc gcc-c++ wget make libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg-devel freetype-devel bison autoconf libmcrypt libmcrypt-devel gd gd-devel mhash mhash-devel mcrypt
安裝php語法分析器re2c : yum install re2c
configure參考
[root@localhost php-src-php-7.1.6]# ./configure --prefix=/usr/local/php [php安裝的根目錄] --exec-prefix=/usr/local/php [php執(zhí)行文件所在目錄] --bindir=/usr/local/php/bin [php/bin目錄] --sbindir=/usr/local/php/sbin [php/sbin目錄] --includedir=/usr/local/php/include [php包含文件所在目錄] --libdir=/usr/local/php/lib/php [php/lib目錄] --mandir=/usr/local/php/php/man [php/man目錄] --with-config-file-path=/usr/local/php/etc [php的配置目錄] --with-mysql-sock=/tmp/mysql.sock [php的Unix socket通信文件] --with-mcrypt [是php里面重要的加密支持擴展庫,linux環(huán)境下該庫在默認情況下不開啟] --with-mhash [Mhash是基于離散數(shù)學(xué)原理的不可逆向的php加密方式擴展庫,其在默認情況下不開啟] --with-openssl [OpenSSL 是一個安全套接字層密碼庫] --with-mysqli=shared,mysqlnd [php依賴mysql庫] --with-pdo-mysql=shared,mysqlnd [php依賴mysql庫] --with-gd [gd庫] --with-iconv [關(guān)閉iconv函數(shù),種字符集間的轉(zhuǎn)換] --with-zlib [zlib是提供數(shù)據(jù)壓縮用的函式庫] --enable-zip [打開對zip的支持] --enable-inline-optimization [優(yōu)化線程] --disable-debug [關(guān)閉調(diào)試模式] --disable-rpath [關(guān)閉額外的運行庫文件] --enable-shared [啟用動態(tài)庫] --enable-xml [開啟xml擴展] --enable-bcmath [打開圖片大小調(diào)整,用到zabbix監(jiān)控的時候用到了這個模塊] --enable-shmop [共享內(nèi)存] --enable-sysvsem [內(nèi)存共享方案] --enable-mbregex [開啟多字節(jié)正則表達式的字符編碼。] --enable-mbstring [開啟多字節(jié)字符串函數(shù)] --enable-ftp [開啟ftp] --enable-gd-native-ttf [開啟gd庫原有字體] --enable-pcntl [PHP的進程控制支持實現(xiàn)了Unix方式的多進程創(chuàng)建] --enable-sockets [開啟套節(jié)字] --with-xmlrpc [打開xml-rpc的c語言] --enable-soap [開啟簡單對象訪問協(xié)議簡單對象訪問協(xié)議] --without-pear [開啟php擴展與應(yīng)用庫] --with-gettext [開戶php在當(dāng)前域中查找消息] --enable-session [允許php會話session] --with-curl [允許curl擴展] --with-jpeg-dir [指定jpeg安裝目錄yum安裝過后不用再次指定會自動找到] --with-freetype-dir [指定freetype安裝目錄yum安裝過后不用再次指定會自動找到] --enable-opcache [開啟使用opcache緩存] --enable-fpm [開啟fpm] --with-fpm-user=nginx [php-fpm的用戶] --with-fpm-group=nginx [php-fpm的用戶組] --without-gdbm [數(shù)據(jù)庫函數(shù)使用可擴展散列和類似于標準UNIX dbm的工作] --enable-fast-install [為快速安裝優(yōu)化] --disable-fileinfo安裝php5.4
新建安裝目錄:/usr/local/php/php54
執(zhí)行configure : ./configure --prefix=/usr/local/php/php54 --datadir=/usr/local/php/php54/doc --mandir=/usr/local/php/php54/man --with-config-file-path=/usr/local/php/php54/etc --with-mcrypt --with-mhash --with-openssl --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-zlib --enable-zip --disable-rpath --enable-shared --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --with-curl --with-jpeg-dir --with-freetype-dir --enable-fpm --enable-fast-install
編譯 : make (可以通過make clean進行清理,編譯完成后可以執(zhí)行測試 make test)
安裝 : make install >& LOG_make_install
配置php.ini
1.cp php.ini-production /usr/local/php/php54/etc/php.ini 2.修改php擴展目錄所在位置 extension_dir="/usr/local/php/php54/lib/php/extensions/no_debug_non_zts_20160303" 3.修改時區(qū) date.timezone=PRC
php-fpm配置(php-fpm.conf)
1.cp /usr/local/php/php54/etc/php-fpm.conf.default /usr/local/php/php54/etc/php-fpm.conf 2.修改配置 pid=run/php-fpm.pid error_log=log/php-fpm.log
nginx相應(yīng)配置(nginx.conf)
1.在nginx.conf所在的目錄下添加目錄‘vhosts.d’(用于存放各個站點配置) 2.修改nginx.conf配置文件(include vhosts.d目錄) #user nginx; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { 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 /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; # all real virtual machine,下面這一行引入vhosts.d目錄下的所有站點配置 include vhosts.d/*.conf; } 3.在vhosts.d目錄下添加站點配置文件(eg : www.php5.net) server { listen 80; server_name www.php5.net; access_log logs/www_php5_net_access.log main; error_log logs/www_php5_net_error.log; location / { root /data/code/php/vm/php5/; try_files $uri $uri/ /index.php?$args; index index.html index.php; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/code/php/vm/php5/$fastcgi_script_name; include fastcgi_params; } }安裝php7.1
新建目錄/usr/local/php/php71
執(zhí)行 : ./buildconf --force (為了防止出現(xiàn)錯誤 : cp:cannot stat "sapi/cli/php.1": No such file or directory)
執(zhí)行configure : ./configure --prefix=/usr/local/php/php71 --datadir=/usr/local/php/php71/doc --mandir=/usr/local/php/php71/man --with-config-file-path=/usr/local/php/php71/etc --with-mcrypt --with-mhash --with-openssl --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-zlib --enable-zip --disable-rpath --enable-shared --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --with-curl --with-jpeg-dir --with-freetype-dir --enable-fpm --enable-fast-install
編譯 : make (可以通過make clean進行清理,編譯完成后可以執(zhí)行測試 make test)
安裝 : make install >& LOG_make_install
配置php.ini
1.cp php.ini-production /usr/local/php/php71/etc/php.ini 2.修改php擴展目錄所在位置 extension_dir="/usr/local/php/php71/lib/php/extensions/no_debug_non_zts_20160303" 3.修改時區(qū) date.timezone=PRC
php-fpm配置(php-fpm.conf)
cp /usr/local/php/php71/etc/php-fpm.conf.default /usr/local/php/php71/etc/php-fpm.conf pid=run/php-fpm.pid error_log=log/php-fpm.log cp /usr/local/php/php71/etc/php-fpm.d/www.conf.default /usr/local/php/php71/etc/php-fpm.d/www.conf listen = 127.0.0.1:9002(php54占用了9000端口)
在vhosts.d目錄下添加站點配置文件(eg : www.php7.net)
server { listen 80; server_name www.php7.net; access_log logs/www_php7_net_access.log main; error_log logs/www_php7_net_error.log; location / { root /data/code/php/vm/php7/; try_files $uri $uri/ /index.php?$args; index index.html index.php; } location ~ .php$ { fastcgi_pass 127.0.0.1:9001; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/code/php/vm/php7/$fastcgi_script_name; include fastcgi_params; } }安裝php7.0
php7.0的安裝與php7.1基本沒有差別,此處不再贅述。
啟動和關(guān)閉php-fpm1.啟動 : sudo /usr/local/php/php71/sbin/php-fpm
2.關(guān)閉 : sudo kill -INT `cat /usr/local/php/php71/var/run/php-fpm.pid
php5.4,php7.0的操作方式是相同的
各種php擴展的源碼安裝過程基本相似,主要可以概括成以下幾個步驟:
安裝相應(yīng)的依賴(源碼安裝或通過yum等方式安裝皆可)
進入源碼目錄執(zhí)行phpize
執(zhí)行configure
執(zhí)行make
執(zhí)行make install
修改php.ini配置,重啟php
安裝xdebug擴展下載源碼 : sudo wget http://pecl.php.net/get/xdebu...,解壓,進入源碼目錄
運行phpize命令 :/usr/local/php/php54/bin/phpize(若報錯 :Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then, rerun this script.則安裝autoconf(yum install autoconf),然后重新運行phpize)
編譯安裝XDebug
./configure --enable-xdebug --with-php-config=/usr/local/php/php54/bin/php-config make && make install
配置 php.ini,追加以下內(nèi)容
[XDebug] zend_extension = "/usr/local/php/php54/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so" xdebug.profiler_append = 0 xdebug.profiler_enable = 0 xdebug.profiler_enable_trigger = 0 xdebug.profiler_output_dir = "/tmp/php54/xdebug" xdebug.profiler_output_name = "cachegrind.out.%t-%s" xdebug.remote_enable = 1 xdebug.remote_handler = "dbgp" xdebug.remote_host = "10.3.20.151" 這個是ide所在機器的ip xdebug.remote_port = 9010 這個是ide監(jiān)聽的端口 xdebug.trace_output_dir = "/tmp/php54/xdebug" xdebug.remote_autostart = 1 xdebug.default_enable = 1 ;xdebug.idekey=PHPSTORM
新建目錄“/tmp/php54/xdebug”并賦予相應(yīng)的權(quán)限
安裝imagick擴展筆者安裝該擴展用于實現(xiàn)pdf轉(zhuǎn)圖片
安裝Ghostscript下載相應(yīng)的源碼,解壓后進入源碼目錄 ./configure --prefix=/usr/local/ghostscript-9.18 make >& LOG_make make install >& LOG_make_install ln -s /usr/local/ghostscript-9.18/bin/gs /usr/local/bin/gs(創(chuàng)建軟連接)安裝ImageMagick
通過yum安裝 yum install ImageMagick ImageMagick-devel 源碼安裝 下載相應(yīng)的源碼,解壓后進入源碼目錄 ./configure make >& LOG_make make install >& LOG_make_install安裝imagick擴展
下載,解壓,進入源碼目錄
/usr/local/php/php54/bin/phpize
./configure --with-php-config=/usr/local/php/php54/bin/php-config --with-imagick
make
make install > LOG_make_install
修改自己的php.ini文件,然后添加magick擴展:vim .../php.ini 添加extension=imagick.so
重啟PHP
安裝memcached擴展先安裝依賴libmemcached庫
通過yum安裝 yum install libmemcached libmemcached-devel 源碼安裝 1.下載,解壓,進入源碼目錄(https://launchpad.net/libmemcached/+download) 2.sudo ./configure --prefix=/usr/local/libmemcached 3.make && make test && sudo make install
下載,解壓,進入源碼目錄
sudo /usr/local/php/php54/bin/phpize
sudo ./configure --enable-memcached --with-php-config=/usr/local/php/php54/bin/php-config
sudo make && make install
修改自己的php.ini文件,然后添加memcached擴展:vim .../php.ini 添加extension = memcached.so
重啟PHP
安裝reids擴展下載,解壓,進入源碼目錄
sudo /usr/local/php/php54/bin/phpize
sudo ./configure --enable-redis --with-php-config=/usr/local/php/php54/bin/php-config
sudo make && make install
修改自己的php.ini文件,然后添加redis擴展:vim .../php.ini 添加extension = redis.so
重啟PHP
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/29801.html
摘要:安裝擴展前面在設(shè)置了拓展的安裝路徑,于是此處已自動將加入拓展目錄中,只要在,添加即可查看是否安裝成功安裝擴展根據(jù)版本選擇對應(yīng)的查看是否安裝成功相關(guān)文章環(huán)境搭建一環(huán)境搭建二環(huán)境搭建三 安裝的基本步驟官方文檔都有說明:PHP官網(wǎng)安裝文檔 編譯安裝 依賴環(huán)境 這一步實際上已經(jīng)在:LNMP環(huán)境搭建(二):Nginx上完成了 [root@localhost ~]# yum -y inst...
閱讀 2000·2019-08-29 16:27
閱讀 1370·2019-08-29 16:14
閱讀 3371·2019-08-29 14:18
閱讀 3454·2019-08-29 13:56
閱讀 1252·2019-08-29 11:13
閱讀 2117·2019-08-28 18:19
閱讀 3438·2019-08-27 10:57
閱讀 2272·2019-08-26 11:39