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-fpm
fastphp 是安装 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 mysql 1262 ? S 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid 1573 ? 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=3306 3772 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.sock
mysql.sock 的路径在 /data/mysql/mysql/sock
指定 socket。
[root@localhost ecshop]# vim /usr/local/fastphp/lib/php.ini
php.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 3 Warning: 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
立即安装。
安装成功。
参考:
《修改了mysql.sock的位置,如何在程序连接时指定修改后的mysql.sock》
相关文章
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
- Mysql授权允许远程访问解决Navicat for MySQL连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端
- Deepin 15.4 编译安装 LNMP(PHP 5.6.31 + Nginx 1.12.1 + MySQL 5.6.36)
- PHP函数 addslashes() 和 mysql_real_escape_string() 的区别 && SQL宽字节,绕过单引号注入攻击
- php从memcache读取数据再批量写入mysql的方法
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
- ubuntu21.04(linux):用apt安装nginx/php/mysql/phpmyadmin(开发环境)
- PHP获取MySql新增记录ID值的方法
- thinkphp6:访问多个mysql数据源(thinkphp6.0.5 / php 7.4.9)
- Relearning PHP (2) – php 的浮点数float
- MySQL自带函数
- Shell centos7.4整合安装Nginx+Mysql+php脚本
- Atitit php pdo的api使用 目录 1.1. PHP PDO简介1 1.2. 若要使用数据库长连接,:PDO::ATTR_PERSISTENT1 2. 其他设置2 2.1. )、P
- atitit.跨语言实现备份mysql数据库 为sql文件特性 api 兼容性java c#.net php js
- Atitit. 数据约束 校验 原理理论与 架构设计 理念模式java php c#.net js javascript mysql oracle
- Linux下MySQL源码编译安装(eg:mysql-5.6.27.tar.gz )
- PHP 连接 MySQL
- PHP面试题:写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数(array_multisort())
- Python:mysql-connector-python模块对MySQL数据库进行增删改查
- mysql事务 mysql事务回滚 MySQL事务死锁 如何解除死锁 资金出入账
- ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 5
- MYSQL导入数据报错|MYSQL导入超大文件报错|MYSQL导入大数据库报错:2006 - MySQL server has gone away
- fedora23安装php,mysql
- fedora23中安装php-mysql等
- 如何实现MySQL表数据随机读取?从mysql表中读取随机数据
- Mysql报错:Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- PHP编译安装后的模块添加安装(比如,MySQL模块,gd模块)
- Docker学习笔记17:docker实例之安装 Node.js、PHP、MySQL、Tomcat、Python、Redis、MongoDB、Apache