Nginx 笔记与总结(11)Nginx + php-fpm + MySQL 安装 ecshop
下載 ecshop (ECShop_V2.7.3_UTF8_release1106)安裝包,解壓之后把 upload 文件夾使用 ftp 傳到服務器的 /usr/local/html 目錄下,同時改名為 ecshop,在瀏覽器訪問?http://192.168.254.100/ecshop/install/index.php,如果顯示:ect() failed (111: Connection refused) while connecting to upstream,則說明沒有啟動 php-fpm,使用以下命令啟動 php-fpm:
[root@localhost nginx]# /usr/local/fastphp/sbin/php-fpmfastphp 是安裝 php 的目錄。
?
如果需要只訪問?http://192.168.254.100/ecshop/install ,則需要修改 nginx.conf:
[root@localhost nginx]# vim conf/nginx.conf在 location / { index } 中添加 index.php:
location / {root html;index index.php index.html index.htm;}平滑重啟 nginx。
?
此時訪問?http://192.168.254.100/ecshop/install:
?
下一步,修改不可寫的目錄權限:
?"+"?表示增加權限.?"-"?表示消減權限。
文件所有者可以用字母?u?表示,用戶所在的組可以用字母?g?來表示,其他人可以用字母?o?來表示,所有人可以用字母?a?了表示。
目錄權限:
[root@localhost ecshop]# chmod o+w cert -R [root@localhost ecshop]# chmod o+w images -R [root@localhost ecshop]# chmod o+w data -R [root@localhost ecshop]# chmod o+w temp -R?
模板權限:
[root@localhost ecshop]# chmod o+w themes -R?
此時再刷新頁面:
?
下一步。
如果出現連接數據庫失敗(用戶名:root,密碼:123456):
原因是:
在 Linux 下,用 localhost 進行連接的時候,不是通過 TCP 協議來連接,而是通過套接字 socket 來連接的,而在 phpinfo 中可以看到,并沒有指定 socket:
解決方案 1:
把 localhost 改為 127.0.0.1
?
解決方案 2:
找到 mysql.sock
[root@localhost ecshop]# ps ax|grep mysql1262 ? S 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid1573 ? Sl 0:07 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/error.log --pid-file=/usr/local/mysql/data/mysql.pid --socket=/data/mysql/mysql.sock --port=33063772 pts/0 S+ 0:00 grep mysql或者
[root@localhost ecshop]# vim /etc/my.cnf[client] #password = your_password port = 3306 socket = /data/mysql/mysql.sock# Here follows entries for some specific programs# The MySQL server [mysqld] port = 3306 socket = /data/mysql/mysql.sock或者
[root@localhost ecshop]# find / -name mysql.sock /data/mysql/mysql.sockmysql.sock 的路徑在 /data/mysql/mysql/sock
指定 socket。
[root@localhost ecshop]# vim /usr/local/fastphp/lib/php.iniphp.ini:
找到 mysql.default_socket,指定為:
mysql.default_socket = /data/mysql/mysql.sock保存退出。
殺 php-fpm 進程:
[root@localhost ecshop]# pkill -9 php-fpm啟動 php-fpm:
[root@localhost ecshop]# /usr/local/fastphp/sbin/php-fpm?
(不過這個問題到現在都還沒有解決,使用 localhost 無法連接到數據庫,使用 php 進行檢測:
<? var_dump(mysql_connect('localhost','root','123456'));顯示:
Warning: mysql_connect() [function.mysql-connect]: [2002] Permission denied (trying to connect via unix:///data/mysql/mysql.sock) in /usr/local/nginx/html/test.php on line 3Warning: mysql_connect() [function.mysql-connect]: Permission denied in /usr/local/nginx/html/test.php on line 3 bool(false))
使用 127.0.0.1 連接數據庫,繼續。
設置數據庫名為:shop
管理員姓名:admin
登錄密碼:admin123
電子郵箱:472323087@qq.com
設置時區:中華人民共和國
安裝測試數據
?立即安裝。
?
報錯:
原因:時區配置錯誤。
解決方案,配置 php.ini:
[root@localhost mysql]# vim /usr/local/fastphp/lib/php.ini找到 date.timezone,去掉注釋,并且設置?date.timezone = PRC:
保存退出。
?
殺進程 php-fpm 并啟動 php-fpm:
[root@localhost mysql]# pkill -9 php-fpm [root@localhost mysql]# /usr/local/fastphp/sbin/php-fpm?
立即安裝。
安裝成功。
?
?
參考:
《Linux的chmod命令》
《修改了mysql.sock的位置,如何在程序連接時指定修改后的mysql.sock》
?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Nginx 笔记与总结(11)Nginx + php-fpm + MySQL 安装 ecshop的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 它的斗争“和loser对话”短篇故事
- 下一篇: HIT 2060 Fibonacci