安装前的准备
首先建一个centos的镜像
拉取完可以看看
docker run -i -t -p 10000:80 centos:v1 /bin/bash
----------------安装Nginx+PHP+MySql ----------------------
1.1 安装或更新gcc gcc-c++
因为我安装的Centos是绝对纯洁滴。啥也没有。没辙了。只有先安装个编译器了。
1 |
|
1.2 创建需要使用的目录
source 是用来存放源码的文件夹。package是用来存放编译后的库文件。lnmp是我们真正需要的东西才放里面。(nginx+mysql+memcached+php)
mkdir /download
mkdir /lnmp
cd /download
mkdir package
mkdir source
二、开始安装(nginx篇)
2.1 解压pcre
[官方网站] http://www.pcre.org/
命令流程:
1 2 3 |
|
说明:不需要编译,只需要解压就行。
2.2 解压zlib
[官方网站] http://zlib.net/
命令流程:
1 2 3 |
|
说明:不需要编译,只需要解压就行。zlib版本不对的话,自己去http://zlib.net上看一下版本,然后修改版本即可
2.3 安装nginx
[官方网站] http://nginx.org/
命令流程:
1 2 3 4 5 6 7 |
|
--with-pcre:用来设置pcre的源码目录。
--with-zlib:用来设置zlib的源码目录。
因为编译nginx需要用到这两个库的源码。
小章总结:
此处告一段落,nginx安装完成。我们可以先满足下自己的欲望心。打开nginx服务看看Hello World吧。
启动nginx
1 |
|
启动后可以再浏览器中打开页面,会显示nginx默认页面。127.0.0.1:10000
三、开始安装(php篇)
3.1 安装libxml2
[官方网站] http://xmlsoft.org/
命令流程:
1 2 3 4 5 6 7 8 |
|
这里--with-python=no是
3.2 安装php
[官方网站] http://php.net/
命令流程:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
(由于代码比较长,这里把其复制出来给大伙看看:./configure --prefix=/lnmp/php --with-libxml-dir=/package/libxml2 --with-config-file-path=/lnmp/php/etc --enable-mbstring --enable-fpm --with-mysqli)
四、开始安装(mysql篇) 4.1 安装cmake [官方网站] https://cmake.org/ 命令流程: cd /downlaod/source/ wget https://cmake.org/files/v3.12/cmake-3.12.0.tar.gz tar -zxvf cmake-3.12.0.tar.gz cd cmake-3.12.0 ./configure --prefix=/package/cmake
4.2 安装ncurses [官方网站] http://ftp.gnu.org/gnu/ncurses/ 命令流程: wget http://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz tar -zxvf ncurses-6.1.tar.gz cd ncurses-6.1
4.3 安装mysql [官方网站] http://www.mysql.com/ 命令流程: 不带boost安装方式
自带boost安装试
说明:mysql从5.7版本后就需要boost库的支持了。并且非常恶心的是mysql需要指定的boost版本号,高了或低了都有可能导致编译不通过。 注意:这里安装mysql报错了说下载boost失败啥的,采用其他的安装方式,先把boost下载下来,然后再安装的 有参考这篇文章:https://blog.csdn.net/u011641865/article/details/73498533 但是还是安装失败,然后就直接把boost下载下来,编译MySQL时直接用
# cd /download/source/
到此,使用CentOS7上常用的、全新的Web模块基本已经完成了,剩下的就是对这些软件进行配置咯。哈哈,其实代码多,但是了解后真的挺简单,就那几个命令。怎么样?是不是蛮简单的。
----------------配置Nginx+PHP+MySql ------------------------ 一、准备工作 1.1 安装vim
二、开始配置(nginx篇) 2.1 修改nginx.conf
2.2 找到如下内容,并删除红色标记的字符
2.3 修改完成
可以新建一个vhost文件,先把nginx.conf的80端口的server注释 然后加入这个 include vhost/*; 然后cd vhost 里 新建 default.80.conf文件 server { #charset koi8-r; #access_log logs/host.access.log main; location / { #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # deny access to .htaccess files, if Apache's document root 2.4 关闭nginx
2.5 启动nginx
小章总结: 完成上面的修改就可以让nginx来转发php的动态脚本请求。 不过目前还不能打开php文件,因为还没有打开php-fpm。 我们继续向下看。 三、开始配置(php-fpm) 3.1 copy默认配置文件
3.2 运行php-fpm
二、常用命令 nginx常用命令 启动nginx
重启nginx
关闭nginx
php-fpm常用命令 启动php-fpm
重启php-fpm
关闭php-fpm
配置alias: cd /lnmp/php/etc vi php-fpm.conf 把;pid = run/php-fpm.pid前面的#号去掉 vi ~/.bash_profile 添加: alias nginx.start='/lnmp/nginx/sbin/nginx' alias php.start='/lnmp/php/sbin/php-fpm -c /lnmp/php/etc/php.ini' #开启php-fpm 报存,执行source ~/.bash_profile 现在 开启NGINX:nginx.start 平滑重启NGINX:nginx.reload 关闭NGINX:nginx.stop 开启php-fpm:php.start 关闭php-fpm:php.stop 重启php-fpm: php.restart
############mysql的配置######### 1、新增mysql用户和组 groupadd mysql useradd -g mysql mysql 2、初始化配置表 cd /usr/local/mysql chown -R mysql:mysql . 注意: 5.7之后 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 5.7之前: ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/data 此时会给你一个默认的mysql的root用户登入密码 --user 启动mysql的用户 --basedir mysql安装目录 --datadir mysql数据仓库目录 将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。
复制配置文件 cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf mysql5.7配置文件需要修改my.cnf关键配置, mysql5.7之前默认配置文件中是有配置项的,不用手动修改 注意,tmp目录不存在,请创建之。否则会出错 创建后要赋予mysql权限, 如果mysql.sock指定到/tmp以外的目录,需要在my.cnf中添加[client]并且指定socket位置, 否则登录mysql时会报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 应该是,默认会找tmp目录下的sock文件 4. 将mysqld服务加入开机自启动项。 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#chmod +x /etc/init.d/mysql 并设置可执行权限 (这样就可以使用service mysql命令启动/停止服务,否则就只能使用{mysql}/bin/mysqld_safe &命令来启动服务) 把mysql注册为开机启动的服务 chkconfig --add mysql 查看是否添加成功 chkconfig --list mysql 5.mysql服务的开启和关闭
注:在bin/mysqld_safe&这个启动脚本里已默认设置--user=mysql;在脚本末尾加&表示设置此进程为后台进程,区别就是在控制台输入bg,即可将当前进 程转入后台, 当前shell 可进行其他操作。 bin/mysqladmin -uroot -p (注意此时的root是指mysql的root用户) 需要把mysqll加入到环境变量中,或者为mysql建立软链接 否则运行mysql命令会出现 -bash: mysql:command not found 不加环境变量,就要使用bin/mysql -uroot -p 或者bin/mysqladmin -uroot -p 命令来登录mysql服务 建立软链接: ln -s /usr/local/mysql/bin/mysql /usr/local/bin/ 6.加入环境变量 export PATH=$PATH:/usr/local/mysql/:/local/mysql/bin
7.登录mysql服务 执行:mysql -uroot -p生成的密码 连上后,在做任何操作前,mysql要求要改掉root的密码后才能进行操作。
注意: 1、当登入报错: 是由于源码安装导致的,我们需要修改源码 修改文件: cd /download/source/mysql-5.7.10 vi cmd-line-utils/libedit/terminal.c 把terminal_set方法中的 char buf[TC_BUFSIZE]; 这一行注释,再把 area = buf;改为 area = NULL; 之后重新通过cmake,make;make install,重装mysql之后正常。 2、-bash: service: command not found 输入: yum list | grep initscripts 会出现 initscripts.x86_64 9.49.30-1.el7_2.3 updates 然后yum安装 yum install initscripts 3、局域网连接docker里的数据库 docker run -i -t -p 10001:80 -p 32769:3306 centos:v2 /bin/bash 用本地的32769印射容器的3306端口 进入容器,给mysql新增一个test用户 host权限为% grant all on *.* to test@'%' identified by 'test'; flush privileges; navicat连接 可以用下面指令查容器ip docker inspect 容器id | grep IPAddress 开启多端口转发到容器:docker run -i -t -p 10001:80 -p 32769:3306 centos:v2 /bin/bash 参考: https://www.jb51.net/article/106395.htm 信号解释:
|
||||||||||||||||||||||||||||||