LAMP的PHP
這章我們講PHP,和fastcgi
下面鏈接是LAMP的AM,apache和mariadb
http://rexchow.blog.51cto.com/11619161/1886441
首先準備幾個安裝包
libmcrypt-2.5.8.tar.gz
wget http://down1.chinaunix.net/distfiles/libmcrypt-2.5.7.tar.gz
php-5.6.29.tar.gz
wget http://cn2.php.net/distributions/php-5.6.29.tar.gz
1、解決依賴關係
如果想讓編譯的php支持mcrypt擴展,需安裝libmcrypt libmcrypt-devel 或者編譯安裝
#tar -zxvf libmcrypt-2.5.7.tar.gz
#cd libmcrypt-2.5.7
#./configure
#make && make install
2、編譯安裝php-5.6.29
#tar zxvf php-5.6.29.tar.bz2
#cd php-5.6.29
./configure\ --prefix=/usr/local/php\ ##php路徑 --with-mysql=/usr/local/mysql\ ##mysql路徑 --with-openssl=/usr/local/openssl1u\ ##openssl路徑 --with-mysqli=/usr/local/mysql/bin/mysql_config \ ##mysql配置文檔 --enable-mbstring --with-freetype-dir \ --with-jpeg-dir --with-png-dir --with-zlib \ ##支持圖文件 --with-libxml-dir=/usr\ ##支持xml庫 --enable-xml --enable-sockets \ ##支持xml、套接字 --with-apxs2=/usr/local/httpd2.4/bin/apxs \ ##apxs --with-mcrypt --with-config-file-path=/etc \ --with-config-file-scan-dir=/etc/php.d \ --with-bz2 --enable-maintainer-zts
./configure\
--prefix=/usr/local/php\
--with-mysql=/usr/local/mysql\
--with-openssl=/usr/local/openssl1u\
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring --with-freetype-dir \
--with-jpeg-dir --with-png-dir --with-zlib \
--with-libxml-dir=/usr\
--enable-xml --enable-sockets \
--with-apxs2=/usr/local/httpd2.4/bin/apxs \
--with-mcrypt --with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--with-bz2 --enable-maintainer-zts
# make && make install
爲php提供配置文件:
# cp php.ini-production /etc/php.ini
3、 編輯apache配置文件httpd.conf,以apache支持php
# vim /etc/httpd/httpd.conf
1、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
2、定位至DirectoryIndex index.html
修改爲:
DirectoryIndex index.php index.html
3、添加模塊
LoadModule php5_module modules/libphp5.so
4、測試是否正常
在數據添加權限
mysql -u賬號 -p密碼
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'rexchow' WITH GRANT OPTION; ##授權root賬號訪問%=(本地、IP、hostname) FLUSH PRIVILEGES; 更新權限
#cd /usr/local/apache/htdocs
#mv index.html index.php
#vim index.php 清除內容
<?php
$conn=mysql_connect('192.168.230.202','root','rexchow');
if ($conn)
echo "Connect Success...";
else
echo "Connect Failure...";
phpinfo();
?>
打開瀏覽器測試、走到這步,已經完成lamp的編譯安裝任務
那麼我們開始新的路線,建一個網站,首先下個模板
我們在體驗個小遊戲:
1、建立wordpress
2、給服務器做壓力測試
##下週wordpress
wget https://cn.wordpress.org/wordpress-4.7.1-zh_CN.zip ##下載 unzip wordpress-4.7.1-zh_CN.zip ##解壓 mv wordpress /usr/local/httpd2.4/htdocs ##將wordprss複製到apache服務器下的根目錄
先安裝個mysql管理器
yum install phpmyadmin -y
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5340 to server version: 3.23.54 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> CREATE DATABASE wordpress; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wp"@"localhost" IDENTIFIED BY "wp"; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) mysql> EXIT Bye $
##創建wordpress數據,及給予改wp授權該數據管理權限。
從網上抄來的一段精華內容:
用戶管理
mysql>use mysql;
查看
mysql> select host,user,password from user ;
創建
mysql> create user zx_root IDENTIFIED by 'xxxxx'; //identified by 會將純文本密碼加密作爲散列值存儲
修改
mysql>rename user feng to newuser;//mysql 5之後可以使用,之前需要使用update 更新user表
刪除
mysql>drop user newuser; //mysql5之前刪除用戶時必須先使用revoke 刪除用戶權限,然後刪除用戶,mysql5之後drop 命令可以刪除用戶的同時刪除用戶的相關權限
更改密碼
mysql> set password for zx_root =password('xxxxxx');
mysql> update mysql.user set password=password('xxxx') where user='otheruser'
查看用戶權限
mysql> show grants for zx_root;
賦予權限
mysql> grant select on dmc_db.* to zx_root;
回收權限
mysql> revoke select on dmc_db.* from zx_root; //如果權限不存在會報錯
上面的命令也可使用多個權限同時賦予和回收,權限之間使用逗號分隔
mysql> grant select,update,delete ,insert on dmc_db.* to zx_root;
如果想立即看到結果使用
flush privileges ;
命令更新
設置權限時必須給出一下信息
1,要授予的權限
2,被授予訪問權限的數據庫或表
3,用戶名
grant和revoke可以在幾個層次上控制訪問權限
1,整個服務器,使用 grant ALL 和revoke ALL
2,整個數據庫,使用on database.*
3,特點表,使用on database.table
4,特定的列
5,特定的存儲過程
user表中host列的值的意義
% 匹配所有主機
localhost localhost不會被解析成IP地址,直接通過UNIXsocket連接
127.0.0.1 會通過TCP/IP協議連接,並且只能在本機訪問;
::1 ::1就是兼容支持ipv6的,表示同ipv4的127.0.0.1
登錄網頁http://192.168.230.202/wordpress
即有安裝提示:
按照提示附帶index.php,驗證wordpress賬號登錄是否正常
<?php $conn=mysql_connect('127.0.0.1','wp','wp'); if ($conn) echo "Connect Success..."; else echo "Connect Failure..."; ?>
我的localhost 被鎖了,原因還沒有查出來。則用127.0.0.1代替
安裝wordpress的提示頁,需要你把配置文檔複製到wordpress目錄下的wp-config.php文件內
登錄進去,直接點擊發布,咱們實用性網頁發佈完成。
來來,開始ab進行壓力測試
測試機器,用的192.168.230.204
http://www.jianshu.com/p/43d04d8baaf7
##命令使用詳細說明
我們現在只用下面的命令
輸入命令
ab -n 100 -c 10 http://test.com/
響應非常快,原因是我們用的壓力太小了
10000個請求 999個併發,
吞吐率2784 用戶平均請求等待時間 355
服務器平均請求處理時間 0.359ms
咱們進行下一個故事,fastcgi模塊
把服務器速度加速優化!~