mysql源码编译
1.下载cmake-2.8.12.2-4.el6.x86_64.rpm 和mysql-boost-5.7.17.tar.gz
2.安装源码编译工具cmake(支持编译C++语言)
yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y ##用yum安装可以解决软件依赖性
3.tar zxf mysql-boost-5.7.17.tar.gz ###解压源码包
4.cd mysql-5.7.17/
5.执行:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql \
##安装目录
-DMYSQL_DATADIR=/usr/local/lnmp/mysql/data \
##数据库存放目录
-DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock \ #Unix socket 文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \
##安装 myisam 存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
##安装 innodb 存储引擎
-DDEFAULT_CHARSET=utf8 \
##使用 utf8 字符
-DDEFAULT_COLLATION=utf8_general_ci \
##校验字符
-DEXTRA_CHARSETS=all \
##安装所有扩展字符集
-DWITH_BOOST=boost/boost_1_59_0/
6.直接执行完上面命令后,会报错,要解决一系列依赖性
用yum安装以下依赖性:
yum install gcc gcc-c++ ncurses-devel -y
安装完这些依赖性后,也会执行成功,但是会有warning
要想消除warning,在下载一个依赖性,就可以解决
yum install bison -y
7.删除cmake缓存文件,因为编译时会优先读取cmake缓存文件,要将缓存文件删了,重新编译
8.再次执行编译的命令,这次会执行成功
make && make install
配置mysql
cd /usr/local/lnmp/mysql/support-files/
cp my-default.cnf /etc/my.cnf # 将配置文件拷贝到/etc(系统默认配置文件目录)
vim /etc/my.cnf ##编辑mysql配置文件
18 basedir = /usr/local/lnmp/mysql ##安装目录
19 datadir = /usr/local/lnmp/mysql/data ##mysql数据存放目录
20 port = 3306 ##端口
22 socket = /usr/local/lnmp/mysql/data/mysql.sock
cp mysql.server /etc/init.d/mysqld
####将编译完成的mysql启动脚本复制到系统启动服务的默认目录中
groupadd -g 27 mysql ###建立mysq组
useradd -u 27 -g 27 -M -d /usr/local/lnmp/mysql/data -s /sbin/nologin mysql
###指定目录,建立mysql用户,
cd /usr/local/lnmp/mysql/
chown mysql.mysql . -R ##更改此目录中的所有文件的用户和组
将编译生成的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令
cd
vim .bash_profile
10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
source .bash_profile ###加载文件
cd /usr/local/lnmp/mysql/
mysql --initialize --user=mysql ###初始化
执行完这条命林后,会弹出很多行数据,复制最后一条冒号后生成的密码
此时,mysqld服务已经可以开启关闭了
cd /usr/local/lnmp/mysql/
chown root.root . -R
chown mysql data/ -R
###将此目录的所有文件用户和家目录都改成超户
,除了data改成mysql因为mysql服务将要往这个目录中写数据,保证其有执行权限
打开mysqld /etc/init.d/mysqld start
mysql_secure_installation
(1)在第一次交互请求后面输入刚刚初始化时复制的密码
(2)然后输入两次新密码
(3)接下来的交互式请求可以直接回车,这条交互式请求是询问你是否要检查密码强度,
如果输入y,就要重新修改密码,密码长度必须超过8位,必须有大小写字母,
所以我们直接回车
(4)接下来会询问是否要修改root密码,直接回车,因为上面已经设置过了
(5)接下来全部输入y回车就行
现在就可以直接进入mysql了
mysql -p
输入设置的密码进入就行
php源码安装
1.下载php源码包进行解压
tar jxf php-5.6.35.tar.bz2
cd php-5.6.35
ls
./configure --help | grep mysql ###过滤出与mysql相关的模块
./configure --prefix=/usr/local/lnmp/php # php安装的位置
--with-config-file-path=/usr/local/lnmp/php/etc #php配置文件所在的位置
--with-mysql=mysqlnd
--enable-mysqlnd
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-openssl
--with-snmp
--with-gd
--with-zlib
--with-curl
--with-libxml-dir
--with-png-dir
--with-jpeg-dir
--with-freetype-dir
--with-pear
--with-gettext
--with-gmp
--enable-inline-optimization
--enable-soap
--enable-ftp
--enable-sockets
--enable-mbstring
--enable-fpm # 开启fpm模式(nginx等服务用的)
--with-fpm-user=nginx # 对PHP服务的限制通过nginx用户来实现
--with-fpm-group=nginx # PHP以nginx用户组身份运行
--with-mcrypt # 提供了对多种块算法的支持 主要用来实现加密等算法
--with-mhash # 加密算法
解决依赖性
yum install libxml2-devel -y
yum install openssl-devel -y
yum install curl-devel -y
yum install gmp-devel -y
yum install net-snmp-devel -y
###注意这几个包系统里面没有,你需要从网上下载
yum install -y gd-devel-2.0.35-11.el6.x86_64.rpm
yum install libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
libmcrypt-2.5.8-9.el6.x86_64.rpm -y
rpm -ivh re2c-0.13.5-1.el6.x86_64.rpm
编译和安装
make && make install
至此php安装完成
拷贝文件配置文件
cd /usr/local/lnmp/php/etc/
cp php-fpm.conf.default php-fpm.conf
cd
cd php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/php.ini
修改之前拷贝的配置文件
vim /usr/local/lnmp/php/etc/php-fpm.conf
将第25行注释去掉(pid)
cd /usr/local/lnmp/php/etc/
vim php.ini ###修改时区
933 [Date]
934 ; Defines the default timezone used by the date functions
935 ; http://php.net/date.timezone
936 date.timezone = Asia/Shanghai
id nginx
useradd -M -d /usr/local/lnmp/nginx -s /sbin/nologin nginx ###建立nginx用户
cd
cd php-5.6.35
cd sapi/fpm/
cp init.d.php-fpm /etc/init.d/php-fpm ###制作php启动脚本
chmod +x /etc/init.d/php-fpm ###给启动脚本添加执行权限
/etc/init.d/php-fpm start
ps ax ###查看php进程是否开启
netstat -antlp ###查看端口状态
(三)nginx源码安装
1.解压源码包
tar zxf nginx-1.10.1.tar.gz
2.去掉版本号
cd nginx-1.10.1
cd src/core/
vim nginx.h
###去掉版本号
3.注释掉179行
cd ..
cd auto/cc/
vim gcc
##/debug,找到那行进行注释
4.进行预编译
cd nginx-1.10.1
./configure --help ###查看要添加的模块帮助
./configure --prefix=/usr/local/lnmp/nginx
--with-http_ssl_module
--with-http_stub_status_module
--user=nginx
--group=nginx
--with-threads
--with-file-aio
5.解决依赖性安装
yum install -y pcre-devel ###解决依赖性安装
make && make install
6.配置nginx服务
cd /usr/local/lnmp/nginx/conf
vim nginx.conf
12 events {
13 worker_connections 65535;
14 }
################################################################
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
70 include fastcgi.conf;
71 }
vim /etc/security/limits.conf
nginx - nofile 65536
.将编译生成的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令
vim /root/.bash_profile ###制作nginx启动脚本
10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/nginx/sbin
source .bash_profile ###刷新一下
cd /usr/local/lnmp/nginx/sbin/
nginx -t ##检测语法
nginx ###打开nginx
cd /usr/local/lnmp/nginx/html/ ###默认发布目录
vim index.php
<?php
phpinfo()
?>
在网站分别访问172.25.70.1 172.25.3.5/index.php
为了方便测试再次编辑nginx.conf
cd /usr/local/lnmp/nginx/conf
vim nginx.conf
nginx -s reload
论坛搭建
yum install unzip -y
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/ ###解压到指定目录
cd /usr/local/lnmp/nginx/html/
mv upload bbs ###改目录名
cd bbs/
chmod 777 config/ data/ uc_server/ uc_client/ -R ###修改里面目录权限
此时在/user/local/lnmp/php/etc/php.ini我们需要指定php连接mysql的通信接口,三个位置
cd /usr/local/lnmp/php/etc/
ls
vim php.ini
...
1005 [Pdo_mysql]
1006 ; If mysqlnd is used: Number of cache slots for the internal result set cache
1007 ; http://php.net/pdo_mysql.cache_size
1008 pdo_mysql.cache_size = 2000
1009
1010 ; Default socket name for local MySQL connects. If empty, uses the built-in
1011 ; MySQL defaults.
1012 ; http://php.net/pdo_mysql.default-socket
1013 pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock
...
1159 ; Default socket name for local MySQL connects. If empty, uses the built-in
1160 ; MySQL defaults.
1161 ; http://php.net/mysql.default-socket
1162 mysql.default_socket =/usr/local/lnmp/mysql/data/mysql.sock
...
1218 ; Default socket name for local MySQL connects. If empty, uses the built-in
1219 ; MySQL defaults.
1220 ; http://php.net/mysqli.default-socket
1221 mysqli.default_socket =/usr/local/lnmp/mysql/data/mysql.sock
...
在此安装时还会报错,连接数据库的权限不够
/etc/init.d/php-fpm reload ###重新加载配置文件
cd /usr/local/
ll ###查看里面目录权限
cd lnmp/
ll ###查看里面目录权限
cd mysql/
ll ###查看里面目录权限
chmod 755 data/ ###将data目录权限修改
/etc/init.d/mysqld start
此时论坛成功安装
cd /usr/local/lnmp/nginx/html/bbs/install/
ls
rm -fr index.php ##删掉此文件
登陆查看
进入管理员管理中心,提示删除/install/目录下的php文件,按提示执行,避免二次安装