Linux_CentOS7_lnmp环境搭建过程记录

1. ifconfig命令不存在

yum –y install net-tools

2. 解决killall命令不存在

yum install psmisc

3. 安装gcc*

yum –y install gcc*

4. 安装 vim

yum –y install vim

5. 安装杂项

/usr/bin/yum -y install ntp vim-enhanced gcc gcc-c++ flex bison \
autoconf automake bzip2-devel ncurses-devel zlib-devel \
libjpeg-devel libpng-devel libtiff-devel freetype-devel \
libXpm-devel gettext-devel pam-devel libtool libtool-ltdl \
openssl openssl-devel fontconfig-devel libxml2-devel curl-devel \
libicu libicu-devel libmcrypt libmcrypt-devel libmhash libxml2 \
libmhash-devel mysql-devel libxslt libxslt-devel make pcre-devel \ libmcrypt-devel

6. 安装mysql-5.7.xxx

tar ......
mv ......
groupadd mysql
useradd -r -g mysql mysql
cd /usr/local/mysql
chown -R mysql:mysql ./

执行安装

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql

注意:
执行的时候一定带上后边的三个参数支持,否则最后启动的时候多少会报pid找不到等相关问题!
以上这一步操作成功以后记录下最后一行(mysql临时密码),以后会用到,就像这样:

2016-09-21T00:42:46.836761Z 1 [Note] A temporary password is generated for root@localhost: 5jBpD1vsXt%R

自启动

cp -a ./support-files/mysql.server  /etc/init.d/mysql

自检

bin/mysqld_safe --user=mysql &

注意:
自检过程如果报错文件不存在,手动新建文件夹

vim /etc/my.cnf

修改:

#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
mkdir /var/log/mysql

再次自检

bin/mysqld_safe --user=mysql &

不报错了。。。

启动

/etc/init.d/mysql start

如果启动报错:(按上边的步骤一般不会报这个了,如果报了就重新来一遍!或者照一下方法尝试)

ERROR! The server quit without updating PID file (/usr/local/var/mysql/bogon.pid).

可能原因:


Google了下 ,问题可能的原因有多种,具体什么原因最好的办法是先查看下错误日志:
1、可能是/usr/local/mysql/data/mysql.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld!

2、可能进程里已经存在mysql进程
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!

3、可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。本人就是使用第三条方法解决的 !

4、mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data

5、skip-federated字段问题
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。

6、错误日志目录不存在
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限

7、selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。


pwd
/usr/local/mysql
chown -R root:root ./       // 改回权限
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql       // PATH配置

重新启动
success

连接mysql

mysql –uroot -p
Enter password: 

报错:


ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)


vim /etc/my.cnf

修改:

socket=/tmp/mysql.sock

再连接mysql

mysql –uroot -p
Enter password: // 输入执行安装时生成的mysql临时密码

登录成功!

set password=password('123456');    //修改密码
grant all on *.* to root@"%" identified by "123456";//远程登录权限
flush privileges;   //刷新权限

7. 安装libmcrypt

tar ……
cd ……
./configure
make
make install

8. 安装php

tar ……
cd ……
./configure --prefix=/usr/local/php \
 --enable-cgi --with-mysql \
 --with-config-file-path=/usr/local/php/etc \
 --with-pdo-mysql=/usr/local/mysql/bin/mysql\
 --with-mysqli=/usr/local/mysql/bin/mysql_config \
 --enable-zip --enable-fpm -enable-sockets --enable-soap --enable-pcntl \
 --enable-mbstring --enable-intl --enable-calendar --enable-bcmath \
 --enable-exif --with-mcrypt --with-mhash --with-gd --with-png-dir \
 --with-jpeg-dir --with-freetype-dir --with-libxml-dir --with-curl \
 --with-zlib   --with-openssl --with-kerberos=shared \
 --with-gettext=shared --with-xmlrpc=shared --with-xsl
make && make install
cp php.ini-production /usr/local/php/etc/php.ini

php加入环境变量:

方法一:

vi /etc/profile

在文件末尾加上如下两行代码:

PATH=$PATH:/usr/local/php/bin 
export PATH

更新环境变量:

source /etc/profile

测试:

php -v

方法二:

ln -s /usr/local/php/bin/ph* /usr/local/bin/

测试:

php -v

9. 安装nginx

rewrite 支持:

yum install pcre*

ssl 支持:

openssl versiona      //如果有版本号说明已经安装

如果没有执行:

yum install openssl*

安装nginx:

tar……
cd ……
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-http_stub_status_module \
--with-pcre
make
make install

启动测试:

/usr/local/nginx/sbin/nginx
curl -s http://localhost | grep nginx.com
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx -s reload

生成配置文件:

cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf

启动php-fpm:

/usr/local/php/sbin/php-fpm

报错:


WARNING: Nothing matches the include pattern ‘/usr/local/etc/php-fpm.d/*.conf’ from /usr/local/etc/php-fpm.conf at line 125.
ERROR:. No pool defined at least one pool section must be specified in config file
ERROR: failed to post process the configuration
ERROR: FPM initialization failed


cd php-fpm.d/
cp www.conf.default www.conf
cd ..
/usr/local/php/sbin/php-fpm

nginx支持php以及多端口配置
参照:
Linux_Lamp/Lnmp搭建过程

10. 自定义开机自启动

1) nginx
2) mysql
3) php-fpm
参照:
Linux_CentOS7自定义开机自启动

11. 安装redis

参照:
Linux_CentOS7下redis搭建过程记录
Linux_CentOS7自定义开机自启动

你可能感兴趣的:(CentOS,Linux)