CentOS下nginx+php-fpm+mysql+phpmyadmin并包含ssl环境配置安装 二

  • 内容
  • 评论
  • 相关

接上文

mysql数据库安装

安装必要的依赖库

yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel

yum安装mysql

检测系统是否自带mysql

 yum list installed | grep mysql

如果发现有系统自带数据库采用以下方法卸载

yum -y remove mysql-libs.x86_64

安装

wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
 rpm -ivh mysql-community-release-el6-5.noarch.rpm
 yum install mysql-community-server

启动数据库报错

Job for mysqld.service failed because the control process exited with error code. See "systemyctl status mysqld.service" and "journalctl -xe" for details.

解决方式

创建/var/run/mysqld/目录

查看用户和组 如果还为root 修改组

ls -ld /var/run/mysqld/
chown mysql.mysql /var/run/mysqld/

可能会失败

再次修改即可解决问题

chown -R mysql:mysql /var/lib/mysql 

# 注意:mysql:mysql 为你创建的用户和组

初始化

/etc/init.d/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize

启动数据库服务

/etc/init.d/mysqld start

创建用户和设置初始密码

mysqladmin -u root password root

输入密码进入数据库 初始密码为空

mysql -u root -p

设置数据库密码,接下来就可以正常操作数据库了

创建数据库 授权远程访问等操作

查看mysql是否自启动,并且设置开启自启动命令

chkconfig --list | grep mysqld
 chkconfig mysqld on

phpmyadmin环境搭建

phpmyadmin官网下载安装包 phpMyAdmin-4.8.2-all-languages.tar.xz 放到/usr/local/nginx/ 目录下

tar xvf phpMyAdmin-4.8.2-all-languages.tar.xz

改成你想改为的名称 mv phpMyAdmin-4.8.2-all-languages phpmyadmin

在nginx/conf/nginx.conf 配置文件中 配置一个独立的二级域名访问phpmyadmin server{}块中修改,一个server{}块相当于一个独立的站点根目录(如果没有独立的二级域名需先到阿里云后台进行解析设置)

重启nginx

输入独立解析的域名访问phpmyadmin

提示无法登录数据库

将config.sample.inc.php复制成config.inc.php

文件位于phpmyadmin目录下

将$cfg['Servers'][$i]['host'] = 'localhost';

改为$cfg['Servers'][$i]['host'] = '127.0.0.1'

再次打开网址访问 提示file not found

解决方法

/nginx/conf/nginx.conf 中server{}块中对应的fastcgi_param行的参数,/scripts$fastcgi_script_name改为$document_root$fastcgi_script_name,或者使用绝对路径,要不然浏览器访问,不能解析,会显示“ File not found.”

重启nginx 能够登录,但登录进入后还有一个提示:

没有找到 PHP 扩展 mbstring,而您现在正在使用多字节字符集。没有 mbstring 扩展的 phpMyAdmin 不能正确分割字符串并可能产生意料之外的结果。

解决方法

确定当前系统存在phpize,并且可以使用,通过whereis phpize可以看到搜索结果

确定了phpize命令执行路径后 ,我们进入需要编译安装的扩展目录,小编是进入到 /usr/local/src/php-7.2.28/ext/mbstring ,进入目录后在当前位置输入命令 /usr/local/php/bin/phpize (也可能是 /usr/bin/phpize ) 命令执行完毕后,目录里面会多几个文件,有configure.

phpize执行失败提示:

Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF environment variable. Then,return this script.

执行

yum -y install autoconf

解决

然后重新执行phpize命令,完成后输入

./configure (可能是./configure --with-php-config=/usr/local/php/bin/php-config 小编当时并没有指定具体的位置)
 make
 make install

会在目录modules中生成一个mbstring.so文件,将其复制到/usr/local/php/lib/php/extensions/中指定的目录下,不过似乎已经在安装后自动复制过去了。

修改php.ini

注意php.ini的位置,可能会存在于/etc/php.ini,此处设置可能无效,建议通过phpinfo()确定php.ini的有效路径,将/etc/php.ini复制到对应的位置,如小编的php.ini有效路径位于/usr/local/php/lib/目录下。

在底部添加

extension=mbstring.so

添加后可能会提示:

centos 缺少 mysqli 扩展。请检查 PHP 配置。

执行

yum install php-mysqli

然后参考编译mbstring.so方式,进入 /usr/local/src/php-7.2.28/ext/mysqli/目录,执行phpize,再编译生成mysqli.so,并将其添加至php.ini中

extension=mysqli.so

phpize执行mysqli编译的位置位于 /usr/local/src/php-7.2.28/ext/mysqli/

其他问题

phpmyadmin访问时报错:

mysqli_real_connect(): (HY000/2002): No such file or directory

解决办法:

登录mysql,执行STATUS

找到 类似于 UNIX socket: /usr/local/mysql/mysql.sock

获取mysql.sock的完整路径

mysql>STATUS
--------------
mysql Ver 14.14 Distrib 5.6.51, for Linux (x86_64) using EditLine wrapper

Connection id: 140
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.51 MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /usr/local/mysql/mysql.sock
Uptime: 4 hours 39 min 21 sec

打开php.ini,在php.ini中配置好mysqli路径

pdo_mysql.default_socket= /usr/local/mysql/mysql.sock

mysqli.default_socket = /usr/local/mysql/mysql.sock

重启nginx和php-fpm彻底解决问题。

 

上一篇: 下一篇:
关注本站微信公众号


仍未解决?点击远程协助
win10纯净版系统安装教程
关闭
关注本站

扫一扫,关注本站微信公众号