abstract:由于linux系統(tǒng)的穩(wěn)定性,大部分的PHP服務(wù)器都被部署在linux上,而且像redis等擴(kuò)展在linux能得到更好的支持,所以對于PHP程序員來說,使用linux的功底也相當(dāng)重要,接下來總結(jié)一下我從一開始在linux下安裝配置linux的心得。linux系統(tǒng)安裝首先是選擇linux操作系統(tǒng),我使用的是Cent OS 6.7 ,它類似紅帽系統(tǒng),簡單易接觸,而且開源免費(fèi)。Cent
由于linux系統(tǒng)的穩(wěn)定性,大部分的PHP服務(wù)器都被部署在linux上,而且像redis等擴(kuò)展在linux能得到更好的支持,所以對于PHP程序員來說,使用linux的功底也相當(dāng)重要,接下來總結(jié)一下我從一開始在linux下安裝配置linux的心得。
linux系統(tǒng)安裝
首先是選擇linux操作系統(tǒng),我使用的是Cent OS 6.7 ,它類似紅帽系統(tǒng),簡單易接觸,而且開源免費(fèi)。
CentOS(Community Enterprise Operating System,中文意思是:社區(qū)企業(yè)操作系統(tǒng))是Linux發(fā)行版之一,它是來自于Red Hat Enterprise Linux(小紅帽)依照開放源代碼規(guī)定釋出的源代碼所編譯而成。由于出自同樣的源代碼,因此有些要求高度穩(wěn)定性的服務(wù)器以CentOS替代商業(yè)版的Red Hat Enterprise Linux使用。兩者的不同,在于CentOS并不包含封閉源代碼軟件。
然后要準(zhǔn)備一臺linux機(jī)器,虛擬機(jī)是最好的選擇了,它便于安裝,隨開隨用。
虛擬機(jī)管理我推薦VM ware station,安裝管理都方便,而且功能強(qiáng)大。用過小巧的virtual box,在win7下安裝要改theme主題文件,辛苦裝好的環(huán)境因?yàn)槲粗?兼容問題排除后,猜測是BIOS設(shè)置的問題,可參考)打不開虛擬機(jī)而放棄后,終于選擇了VM,VM下安裝linux的教程網(wǎng)上到處是,還有全程配圖版。
說一下要注意的地方吧:虛擬機(jī)配置選擇“橋接模式”,這樣,虛擬機(jī)和主機(jī)就在同一個IP段下,可以很輕松地互相訪問,VM下如圖:
然后是我們經(jīng)常要遇到的問題網(wǎng)絡(luò)配置、和虛擬之間的交互、yum配置。
網(wǎng)絡(luò)配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0 按需求修改以下信息
DEVICE=eth0 //網(wǎng)卡序號 NAME="System eth0"//設(shè)備名 TYPE=Ethernet//設(shè)備類型 HWADDR=00:0C:29:C9:81:D7//系統(tǒng)檢測到的硬件ID ONBOOT=yes //是否開機(jī)運(yùn)行 BOOTPROTO=static //獲取IP方式,有static(靜態(tài)方式)、dhcp(DHCP協(xié)議)、none(不指定) IPADDR=192.168.1.66 //IP地址 NETMASK=255.255.255.0 //子網(wǎng)掩碼 GATEWAY=192.168.1.1//網(wǎng)關(guān)
這樣配置好之后,如果linux系統(tǒng)有桌面系統(tǒng)的話就可以直接用瀏覽器訪問外網(wǎng)了。還需要進(jìn)行主機(jī)和虛擬機(jī)之間的連通,可以在windows的cmd命令行中運(yùn)行ipconfig命令來獲取當(dāng)前ip信息,然后可以在主機(jī)和虛擬機(jī)之間使用ping命令測試連接狀態(tài)。
ping 192.168.1.xxx
注意,虛擬機(jī)可能會用防火墻屏蔽80端口,導(dǎo)致虛擬機(jī)能訪問自己,兩者也能相互ping通,虛擬機(jī)也能訪問主機(jī),但主機(jī)卻無法訪問虛擬機(jī)的網(wǎng)站,通過修改防火墻設(shè)置或關(guān)閉防火墻能解決這一問題。
/etc/init.d/iptables -I INPUT -p tcp --dport 80 -j ACCEPT //修改不屏蔽80端口。 /etc/init.d/iptables stop //關(guān)閉防火墻
這樣在配置好環(huán)境之后,就可以在主機(jī)和虛擬機(jī)之間互相訪問了。
主機(jī)環(huán)境下操作虛擬機(jī)
配置好之后,便可以用工具來解決虛擬機(jī)和主機(jī)之間切換復(fù)制信息不便的問題了,這里我使用Secure CRT來進(jìn)行主機(jī)與虛擬機(jī)之間的連接。
安裝打開之后,點(diǎn)擊quick connect按鈕新增一個連接操作,如下圖:
然后輸入用戶密碼,保存。
還要注意使用Secure CRT時的編碼問題,默認(rèn)情況下,虛擬機(jī)的中文會顯示亂碼 ,需要以下配置:
然后讓虛擬機(jī)進(jìn)入后臺運(yùn)行狀態(tài),在VM界面,點(diǎn)擊關(guān)閉虛擬機(jī)窗口,會彈出如下菜單。
選擇后臺運(yùn)行,這樣就可以不用管虛擬機(jī)窗口,盡情地用Secure CRT在window下操作虛擬機(jī)了。
yum配置
Yum(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理器?;赗PM包管理,能夠從指定的服務(wù)器自動下載RPM包并且安裝,可以自動處理依賴性關(guān)系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
yum一般會在系統(tǒng)安裝時自動安裝,如果使用yum命令時提示找不到命令,那就在光盤的Packages文件夾里搜索yum安裝包安裝。
使用yum之前要先配置yum源。
切換到/etc/yum.repos.d/目錄下,先將原來的yum源備份一個,然后用wget命令獲取一個yum源。
cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo.bak wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
配置好后我們就可以用yum來安裝所需的軟件了,用yum源來安裝必備庫和編譯軟件 gd gd-devel libxml2-devel gcc gcc-c++ zlib等
用yum安裝的軟件會找不到安裝目錄,可以用用rpm -ql packagename 查詢安裝地址
接下來安裝mysql mysql-server 安裝好后記得用 mysqladmin -u root password xxxx設(shè)置好root密碼
然后用wget命令+地址 下載php安裝包,手動編譯PHP時要注意:
--with-apxs2=/usr/local/apache2/bin/apxs//將其編譯為apache的核心。
--enable-fpm //如果使用nginx服務(wù)器,此項(xiàng)要選,產(chǎn)生一個獨(dú)立的PHP進(jìn)程,在php/sbin/php-fpm,直接執(zhí)行會產(chǎn)生一個端口號為9000的PHP進(jìn)程。
PHP添加擴(kuò)展模塊
擴(kuò)展模塊一般分為兩部分:擴(kuò)展服務(wù)器和php擴(kuò)展。
像mongo等擴(kuò)展服務(wù)器是擴(kuò)展的核心,要在各自的官網(wǎng)找到下載地址,用wget命令下載下來,然后解壓安裝,一般是官方編譯好的可執(zhí)行文件,直接復(fù)制到目標(biāo)目錄即可。
而PHP擴(kuò)展文件,則是一個函數(shù)庫,通過函數(shù)庫與擴(kuò)展服務(wù)器連接并操作數(shù)據(jù)庫,大家可以去PHP官方擴(kuò)展倉庫 https://pecl.php.net/index.php下載擴(kuò)展。
先將擴(kuò)展包下載下來,然后解壓,進(jìn)入目錄,用php/bin下的phpize運(yùn)行一下(注意php用yum安裝,找不到phpize,可用yum install php-devel來安裝phpize),產(chǎn)生一個configure文件。
再用./configure --prefix=/usr/local/... –with-php-config=/usr/local/php/bin/php-config 命令編譯
最后make / make test /make install
會得到一個形如/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/的地址,這個文件夾里存放著我們編譯出來的PHP模塊文件xxx.so(如同windows下的xxx.dll)
然后修改/lib/php.ini文件,添加extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/xxx.so將模塊擴(kuò)展加入。
這樣簡單的PHP環(huán)境便搭建好了。