在 Cent OS 7 上搭建帶著 PHP 7 和 Memcached 的 LAMP
start
最近公司增加了一臺測試用的伺服器,當然因為只是測試用,所以決定所有東西都裝到一個伺服器上,用來我們自己擼程式碼,發測試版功能,做點小實驗神碼的,等等等等……反正就是方便用吧,所以自己來試了下搭建一臺完全的 LAMP 開發\測試環境,當然同樣踩到了無數的坑
那我們來開始吧
Step.1 先搞個伺服器
那第一步,我們先搞個伺服器吧,搞啥伺服器呢,既然是測試用那就搞點不要錢的,或者方便的吧,這裡就推薦大家試試用 AWS 或者自己機器上搭建虛擬機器,比如 Vagrant 這樣的開發平臺也是可以的,這裡,我們就用 AWS 了,反正可以免費一年,AWS 的優點是訪問國外網站超快,缺點自然是國內訪問超慢,當然大家用啥都可以的啦,這裡假設我們已經有一臺 Cent OS 7 的伺服器了,並且假設你可以遠端連結到這臺伺服器(比如 ssh)
Setp.2 安裝配置 LAMP
- 首先我們安裝 Apache
安裝 Apache 很簡單,只需要通過 yum
安裝就可以了
yum install httpd
安裝完成後,使用 systemctl
命令啟動他,並設定為開機自動啟動
systemctl start httpd.service
systemctl enable httpd.service
也可以通過 systemctl status
來檢視服務是否正確的啟動了,也可以到 /var/log/httpd
路徑下看訪問日誌和錯誤日誌來排查問題
新的 Cent OS 已經裝了 FirewallD 了,所以如果裝了這個,我們還需要告訴 FirewallD 開啟防火牆
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload
- 接下來裝 MySQL
首先,我們要知道的是,MySQL 沒有在 Cent OS 7 的軟體源庫裡面,Cent OS 7 裡面有對應的替代品 MariaDB,因為龜殼公司收購了 MySQL,大家怕萬一將來 MySQL 閉源了,那不都跪了,於是就開了個分支自己開始做起 MariaDB 來了,這裡一步我們還是手工新增 MySQL 的軟體源來安裝 MySQL 保證還是那個味道
首先新增 MySQL 的軟體源
yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
接下來分別安裝 MySQL 的客戶端和服務端
yum install mysql-server mysql-client
安裝完成後,使用 mysql_secure_installation
來完成 MySQL 的安裝配置
同樣需要為 MySQL 配置防火牆
firewall-cmd --permanent --zone=public --add-service=mysql
firewall-cmd --reload
- 接下來我們安裝 PHP 7
跟 MySQL 類似,目前發行包的軟體源裡面是不包含 PHP 7 的,只包含了 PHP 5.x 的版本,所以為了安裝 PHP 7 我們同樣需要新增 PHP 7 的軟體源,根據這幾天的實驗情況看,Remi 的 PHP 7 的軟體包和外掛比較完善,所以我們就先新增 Remi 的軟體源
yum install scl-utils
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
新增完成軟體源後,我們就可以安裝 PHP 7 和各種常用的東西了
yum install php70 php70-php-mysqlnd php70-php-curl php70-php-simplexml
yum install php70-php-devel php70-php-gd php70-php-json php70-php-mcrypt php70-php-mbstring php70-php-opcache php70-php-pear php70-php-pecl-apcu php70-php-pecl-geoip php70-php-pecl-imagick php70-php-pecl-json-post php70-php-pecl-memcache php70-php-pecl-memcached php70-php-pecl-xmldiff php70-php-pecl-zip php70-php-pspell php70-php-soap php70-php-tidy php70-php-xml php70-php-xmlrpc
接下來呢,這裡其實還沒裝完,因為最初我是為了升級伺服器 PHP 5.x 而裝的 PHP 7,所以如果你的伺服器已經裝了 PHP 5.x 需要簡單的升級下,那麼在這裡安裝完成 PHP 7 的軟體包以後刪除 PHP 5.x 然後在安裝 php70-php
這個包
yum remove php, php-common
然後
yum install php70-php
之後修改配置檔案重啟 Apache 就可以了,要注意的是,PHP 7 的配置檔案放到了 /etc/opt/remi/php70/
路徑下,PHP 7 的相關檔案放到了 /opt/remi/php70/root/lib64/php
路徑下
好,這樣,我們一個帶著 PHP 7 的伺服器就裝好了,大家可以在上面自由玩耍享受 PHP 7 帶來的效能提升了
Setp.3 安裝 SASL 和 Memcached
首先 Memcached 大家都知道是什麼東西了,那麼我來說說 SASL 是什麼鬼 SASL 全稱 Simple Authentication and Security Layer 用來做安全機制驗證的,說簡單點,就是用這個東西,我們可以讓我們的 Memcached 在訪問前需要驗證下使用者名稱密碼,另外 Memcached 的 Binary 介面比需要使用 SASL 驗證,否則就會輸出 Writing an error: Unknown command
的錯誤(然而在 PHP 5.x 下,卻正常。。。所以這個問題研究了好會兒)。
我們先安裝 SASL
yum install cyrus-sasl-plain
yum install cyrus-sasl-devel
yum install cyrus-sasl
yum install cyrus-sasl-lib
yum install cyrus-sasl-gssapi
yum install cyrus-sasl-md5
安裝完成後,通過 systemctl start saslauthd.service
命令啟動這個服務,接下來,我們需要建立一個使用者通過 SASL 驗證來訪問 Memcached
首先我們要修改 SASL 的配置來使用當前 /etc/shadow
中的使用者賬戶以及密碼來進行驗證,所以我們修改 /etc/sysconfig/saslauthd
中的 MECH=shadow
告訴 SASL 使用系統的賬戶密碼來驗證,修改完後通過 systemctl restart saslauthd.service
重啟 SASL 的程式
可以通過下面的命令來驗證使用者是否可以正確的被驗證了
/usr/sbin/testsaslauthd -u username -p password
成功將會顯示 0: OK "Success."
,要注意的是這裡的 username 和 password 是需要能夠正常登入系統的使用者名稱和密碼,也就是需要記錄在 /etc/shadow
檔案中
接下來我們安裝 Memcached 需要的 libevent
yum install libevent libevent-devel
再接下來,我們需要通過原始碼編譯安裝 Memcached,因為預設在 yum 中的 Memcached 是沒有開啟 SASL 驗證的
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar zxvf memcached-1.4.15.tgz
cd memcached-1.4.15
./configure --enable-sasl --with-php-config=/opt/remi/php70/root/bin/php-config
make
make install
這樣我們的 Memcached 也編譯並安裝完成了,接下來為 Memcached 的服務新增 SASL 驗證和防火牆規則
saslpasswd2 -a memcached -c 用來訪問 memcached 的使用者
firewall-cmd --permanent --zone=public --add-port=11211/tcp
firewall-cmd --reload
接下來我們啟動 Memcached
/usr/local/bin/memcached -d -u 用來訪問 memcached 的使用者 -p 11211 -m 512 -c 1024 -S
上面引數中 -S
就是告訴 memcached 需要開啟 SASL 驗證了
end
到此,開發環境的配置就結束了,大家愉快的玩耍吧,歡迎擲磚>_<
相關文章
- Cent OS 7安裝和使用dockerDocker
- VNC cent OS 7操作工具,VNC cent OS 7 操作工具下載!VNC
- centos7lamp搭建CentOSLAMP
- [LAMP]安裝PHP5/7LAMPPHP
- Cent os 6.3上安裝rlwrap
- 如何在CentOS 7上搭建LAMP環境(使用YUM或編譯)CentOSLAMP編譯
- LAMP-CentOS7搭建Web伺服器LAMPCentOSWeb伺服器
- 在CentOS 7上搭建Docker環境CentOSDocker
- Mac & Linux下php7新增memcached和redis擴充套件MacLinuxPHPRedis套件
- Cent OS 7 (docker)預設為英文修改 中文相容 其他語言 的解決方法Docker
- php環境搭建---LAMPPHPLAMP
- Cent OS 安裝 RedisRedis
- Centos下搭建LAMP+PHPCentOSLAMPPHP
- 使用unbound在RHEL7上搭建DNS服務DNS
- Cent OS 6升級核心
- PHP 7 值得期待的新特性(上)PHP
- centos7下安裝php+memcached簡單記錄CentOSPHP
- 在IIS7上執行PHP功能擴充套件PHP套件
- 搭建LAMP中安裝PHP遇到的故障LAMPPHP
- Linux下給php7安裝memcached擴充套件的步驟LinuxPHP套件
- 在CentOS之上搭建VMware Player 7CentOS
- 在 PHP 7 中不要做的 10 件事PHP
- 在nginx上搭建php服務NginxPHP
- Centos7上搭建OpenvpnServer——pritunlCentOSServer
- 在Centos7伺服器上搭建閘道器服務CentOS伺服器
- 10 件在 PHP 7 中不要做的事情PHP
- 在 CentOS_7中搭建 LeanoteCentOS
- 在CentOS 7上編譯QtumCentOS編譯QT
- Cent0S7設定靜態IP的多種方法
- PHP7 ?? 與 ?: 的作用和區別PHP
- PHP7和HHVM的效能之爭PHP
- 實戰Memcached快取系統(7)Memcached的一些基礎FAQ快取
- 【[Oracle】-【安裝】-Cent OS安裝Oracle ClientOracleclient
- 在Mac OS上第一次搭建PHP環境MacPHP
- Centos7編譯安裝Memcached教程。CentOS編譯
- Lamp(linux+apache+mysql+php)環境搭建LAMPLinuxApacheMySqlPHP
- PHP開發大牛必修課——LAMP平臺搭建PHPLAMP
- PHPExcel匯出的問題,在PHP7中PHPExcel