环境:
版本 | IP地址 | 源码包版本 |
---|---|---|
CentOS7.5_mysql | 192.168.111.3 | mysql-5.7.24.tar.gz,cmake-3.13.1.tar.gz,boost_1_59_0 |
Centos7.5_httpd | 192.168.111.4 | apr-1.6.5,apr-util-1.6.1,httpd-2.4.37 |
Centos7.5_php | 192.168.111.5 | php-7.3.1 |
目录
一、安装配置MySQL
二、安装配置httpd
三、安装配置PHP
一、安装配置MySQL
[root@localhost ~]# yum -y install ncurses-devel #这个是cmake的依赖包
- 安装MySQL
[root@localhost ~]# tar xf cmake-3.13.1.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/cmake-3.13.1/ [root@localhost cmake-3.13.1]# ./configure && gmake && gmake install #这步时间较长 [root@localhost cmake-3.13.1]# useradd -M -s /sbin/nologin mysql #创建一个程序用户并且指定参数 [root@localhost cmake-3.13.1]# mkdir /usr/local/boost #创建一个目录,并将boost_1_66_0.tar.gz解压后放到这个目录里 [root@localhost ~]# tar zxf boost_1_59_0.tar.gz -C /usr/local/boost/ [root@localhost ~]# tar xf mysql-*.tar.gz -C /usr/src/ #解压MySQL包 [root@localhost boost_1_59_0]# cd /usr/src/mysql-5.7.24/ [root@localhost mysql-5.7.24]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA _CHARSETS=all -DSYSCONFDIR=/etc -DWITH_BOOST=/usr/local/boost && make && make install #这步时间较长 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql #数据库程序安装目录 -DDEFAULT_CHARSET=utf8 #指定字符集编码 -DDEFAULT_COLLATION=UTF8_GENERAL_CI #默认的字符集校对规则,utf8_general_ci适用于utf-8字符集的通用规则 -DWITH_EXTRA_CHARSETS=all #指定额外支持的字符集编码 -DSYSCONFDIR=/etc #指定配置文件存放目录 [root@localhost mysql-5.7.24]# cd /usr/local/mysql/ [root@localhost mysql]# chown -R mysql:mysql * #将该目录下的所有文件和目录的属主和属组修改为mysql
- 配置MySQL
[root@localhost mysql]# vim /etc/my.cnf [mysqld] datadir=/usr/local/mysql/data socket=/tmp/mysql.sock [mysqld_safe] log-error=/usr/local/mysql/data/mysql.log pid-file=/usr/local/mysql/data/mysql.pid
- 初始化数据库
[root@localhost mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize --user #指定用户身份运行 --datadir #指定安装目录 --basedir #指定数据目录 执行该命令后注意会出现下面这一行,密码是最后的字符,保存好,待会儿可以进行修改 2019-04-18T08:06:48.532352Z 1 [Note] A temporary password is generated for root@localhost: 4PUsoq3O=rjs
- 设置环境变量
[root@localhost mysql]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile [root@localhost mysql]# . /etc/profile
- 服务启动文件
[root@localhost mysql]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh #将配置文件添加到系统服务 [root@localhost mysql]# chmod +x /usr/local/mysql/bin/mysqld.sh [root@localhost data]# vim /usr/lib/systemd/system/mysqld.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql PIDFile=/usr/local/mysql/data/mysqld.pid # Disable service start and stop timeout logic of systemd for mysqld service. TimeoutSec=0 # Execute pre and post scripts as root PermissionsStartOnly=true # Needed to create system tables #ExecStartPre=/usr/bin/mysqld_pre_systemd # Start main service ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid #注意这里要加上 --daemonize # Use this to switch malloc implementation #EnvironmentFile=-/etc/sysconfig/mysql # Sets open_files_limit LimitNOFILE = 5000 Restart=on-failure RestartPreventExitStatus=1 PrivateTmp=false [root@localhost data]# systemctl start mysqld [root@localhost data]# systemctl enable mysqld [root@localhost data]# mysqladmin -u root -p4PUsoq3O=rjs password 123456 #修改密码,-p后为旧密码,即初始化时出现的哪个,后面为新密码,有空格 [root@localhost data]# mysql -u root -p123456 #使用新密码,登录数据库,-p后无空格 mysql> grant all privileges on *.* to 'root'@'%' identified by '123456'; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) #给用户授权远程连接,稍后在别的服务器上可以通过PHP使用该用户及密码
二、安装配置httpd
- 安装
[root@localhost ~]# useradd -r -s /sbin/nologin -M apache #创建用户 [root@localhost ~]# ls anaconda-ks.cfg apr-1.6.5.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.37.tar.gz initial-setup-ks.cfg [root@localhost ~]# yum -y install pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel #安装依赖 [root@localhost ~]# mv apr-1.6.5 apr [root@localhost ~]# tar zxf apr-util-1.6.1.tar.gz [root@localhost ~]# mv apr-util-1.6.1 apr-util #配置所需的包 [root@localhost ~]# tar zxf httpd-2.4.37.tar.gz -C /usr/src/ [root@localhost ~]# cd /usr/src/httpd-2.4.37/ [root@localhost httpd-2.4.37]# mv /root/{apr-util,apr} srclib/ [root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/httpd --enable-so --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-includ ed-apr=/root/apr --enable-modules=most --enable-mpms-shared=all --with-mpm=prefork && make && make install
- 配置
修改配置文件 [root@localhost httpd-2.4.37]# vim /usr/local/httpd/conf/httpd.conf 171 User apache 172 Group apache 202 ServerName 192.168.111.4:80 #也可填自身域名,并将注释删除 259 <IfModule dir_module> 260 DirectoryIndex index.html index.php 261 </IfModule> #添加PHP的 484 # Virtual hosts 485 Include conf/extra/httpd-vhosts.conf #启用虚拟主机配置 119 LoadModule proxy_module modules/mod_proxy.so 123 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so #取消注释 [root@localhost httpd-2.4.37]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf #将原来文件内容删除 <VirtualHost 192.168.111.4:80> DocumentRoot "/usr/local/httpd/htdocs" ServerName www.join.com ErrorLog "/usr/local/httpd/logs/error_log" CustomLog "/usr/local/httpd/logs/access_log" common <Directory "/usr/local/httpd/htdocs"> Options None AllowOverride None Require all granted </Directory> ProxyRequests Off #关闭代理请求 ProxyPassMatch ^/(.*.php)$ fcgi://192.168.111.5:9000/usr/local/httpd/htdocs/$1 #访问PHP结尾的网页,匹配PHP地址和目录以及端口 </VirtualHost> [root@localhost httpd-2.4.37]# vim /usr/lib/systemd/system/httpd.service #服务启动配置文件 [Unit] #控制单元的定义 Description=The Apache HTTP Server #设置服务单元描述字符串 After=network.target #After:设置服务单元的启动先后顺序。(如,httpd.service单元文件中出现“After=network.target”表示先“network.target”后 “httpd.service“;出现”Before“则 相反顺序启动) [Service] #服务定义 Type=forking #设置服务进程的启动类型。为forking是需同时设置PIDFile配置项,以帮助systemd精确定位到服务的主进程。 PIDFile=/usr/local/httpd/logs/httpd.pid #设置服务的守护进程的PID文件 ExecStart=/usr/local/httpd/bin/apachectl $OPTIONS #设置服务启动时执行的命令 ExecReload=/bin/kill -HUP $MAINPID #设置服务重新加载时执行的命令 KillMode=process #设置在单元停止时,杀死进程的方法;process表示仅杀死主进程。 Restart=on-failure #设置服务进程正常退出、异常退出、被杀死、超时时候,是否重启服务。on-failure表示异常退出重启。 RestartSec=42s #重启服务钱暂停多长时间,默认100ms [install] #安装部分 WantedBy=graphical.target #设置该服务所在的(target)运行目标。WantedBy=graphical.target,是指httpd所在的运行目标是图形界面多用户系统;改配置项还有multi-user.target(非图形界>面多用户系统) [root@localhost httpd-2.4.37]# systemctl start httpd [root@localhost httpd-2.4.37]# systemctl enable httpd
三、安装配置PHP
- 安装
[root@localhost ~]# yum install -y pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel #安装依赖包 [root@localhost ~]# tar zxf php-7.3.1.tar.gz -C /usr/src/ [root@localhost php-7.3.1]# cd /usr/src/php-7.3.1/ [root@localhost etc]# ./configure --prefix=/usr/local/php --enable-mysqlnd --with-mysqli=mysqlnd --with-openssl --with-pdo-mysql=mysqlnd --enable-mb string --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml --enable-fpm --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --enable-maintainer-zts --disable-fileinfo && make && make install #编译安装 [root@localhost php-7.3.1]# cp php.ini-production /etc/php.ini #生成配置文件 [root@localhost php-7.3.1]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #生成服务文件 [root@localhost php-7.3.1]# chmod +x /etc/init.d/php-fpm [root@localhost php-7.3.1]# chkconfig --add php-fpm #添加到服务启动 [root@localhost php-7.3.1]# useradd -r -s /sbin/nologin -M apache #创建运行用户 [root@localhost php-7.3.1]# cd /usr/local/php/etc/ [root@localhost etc]# cp php-fpm.conf.default php-fpm.conf [root@localhost etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf #php-fpm配置文件 [root@localhost etc]# vim php-fpm.d/www.conf 23 user = apache 24 group = apache #修改用户和组 36 listen = 192.168.111.5:9000 #监听的地址 [root@localhost etc]# vim php-fpm.conf 17 pid = run/php-fpm.pid #将前面;号去掉(取消注释) [root@localhost etc]# mkdir -pv /usr/local/httpd/htdocs mkdir: 已创建目录 "/usr/local/httpd" mkdir: 已创建目录 "/usr/local/httpd/htdocs" #创建之前在httpd服务器上指定的目录,存放动态网页 [root@localhost ~]# /etc/init.d/php-fpm start Starting php-fpm done #启动php [root@localhost ~]# netstat -lnpt | grep php tcp 0 0 192.168.111.5:9000 0.0.0.0:* LISTEN 54111/php-fpm: mast
四、测试
PHP上新建如下测试文件,测试数据库连通性 [root@localhost etc]# vim /usr/local/httpd/htdocs/mysql.php <?php $link=mysqli_connect('192.168.111.3','root','123456'); #MySQL数据库的主机地址,登录数据库的用户和密码,注意不是系统用户和密码 if($link) echo "<h1>完全分离成功<h1>"; mysqli_close($link); ?>
over……