基于LAMP搭建Discuz!论坛,并配置Apache、PHP、MySQL

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

之前在上篇文章中介绍怎么搭建LAMP http://msiyuetian.blog.51cto.com/8637744/1688019

搭建LAMP后能够正常解析出网页来,那么我们现在来搭建一个Discuz!论坛。


一、安装Discuz!


1、新建目录来存放网页等

[root@tpp ~]# mkdir /data/www
[root@tpp ~]# cd /data/www  
[root@tpp www]# wget http://download.comsenz.com/DiscuzX/3.2/Discuz_X3.2_SC_GBK.zip                                        //下载最新版本的Discuz!
[root@tpp www]# unzip Discuz_X3.2_SC_GBK.zip     //解压
[root@tpp www]# ls
Discuz_X3.2_SC_GBK.zip  readme  upload  utility  

2、程序文件会放于upload下,所以全部移到www目录下,并且删除多余的文件。

[root@tpp www]# mv upload/* ./       
[root@tpp www]# ls
admin.php  connect.php             favicon.ico  install     readme    template  utility
api        cp.php                  forum.php    member.php  robots.txt  uc_client
api.php    crossdomain.xml         group.php    misc.php    search.php  uc_server
archiver   data                    home.php     plugin.php  source      upload
config     Discuz_X3.2_SC_GBK.zip  index.php    portal.php  static      userapp.php
[root@tpp www]# rm -rf readme/ utility/ upload/ Discuz_X3.2_SC_GBK.zip   

3、配置一个虚拟主机

[root@tpp www]# vim /usr/local/apache2/conf/httpd.conf
#Include conf/extra/httpd-vhosts.conf    //找到,开放这个虚拟主机配置文件,如下:
Include conf/extra/httpd-vhosts.conf 
[root@tpp www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf    //编辑虚拟主机配置文件,在文件最后面有两个模板案例,删除一个再修改另一个为:
<VirtualHost *:80>
 # ServerAdmin webmaster@dummy-host.example.com         //管理员邮箱,我们可以去掉
  DocumentRoot "/data/www"                              //改为之前创建的目录
  ServerName www.tpp.com                                      //设置域名
  ServerAlias www.ppt.com                                     //设置多个域名
 # ErrorLog "logs/dummy-host.example.com-error_log"           //错误日志
 # CustomLog "logs/dummy-host.example.com-access_log" common  //访问日志
</VirtualHost> 

接着打开80端口

[root@tpp www]# vim /usr/local/apache2/conf/httpd.conf
<Directory />
   Options FollowSymLinks
   AllowOverride None
   Order deny,allow
   Deny from all
</Directory>
改为:
<Directory />
   Options FollowSymLinks
   AllowOverride all
   Order deny,allow
   Allow from all
</Directory>

保存退出,检测配置是否正确,并重启

[root@tpp www]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp www]# /usr/local/apache2/bin/apachectl restart

4、配置hosts文件

找到本机 C:\Windows\System32\drivers\etc下的hosts文件,添加下面内容后保存退出。

192.168.0.104  www.tpp.com  www.ppt.com  www.ppt1.com

5、我们在浏览器上输入网址 www.tpp.com 这时就会跳转到Discuz!安装界面。

wKiom1XhuJewsMjyAARxsVt_G-M767.jpg

wKioL1XhuuvD3cw5AALVqO2NsZ8971.jpg

同意安装后我们看多好多都是不可写,这时我们就要给他们权限。

首先查看Apache进程以哪个身份运行

[root@tpp www]# ps aux |grep http
daemon    4566  0.0  1.0  30140 11028 ?        S    04:42   0:00 /usr/local/apache2/bin/httpd -k start
daemon    4567  0.0  0.9  28724  9480 ?        S    04:42   0:00

我们可以看到是daemon,下面我们把所有没有权限的文件都赋予daemon主

[root@tpp www]# chown -R daemon config data uc_client/data uc_server/data

刷新页面后,全都变成绿色的了。下一步就是全新安装。

6、安装数据库

在安装数据库之前,我们还需配置数据库

[root@tpp www]# /usr/local/mysql/bin/mysql

mysql> create database discuz;                   //创建一个数据库,数据库名为discuz
mysql> grant all on discuz.* to 'tpp'@'localhost' identified by 'tpplinux';
                                                // all 所有的权限,用户tpp,密码tpplinux

然后我们回到原网页,填写数据库名:discuz,数据库用户名:tpp,数据库密码:tpplinux,其他的默认;管理员admin 密码123456,下一步;安装完成以后,点击最右下角的“您的论坛已完成安装,点此访问”。

wKiom1Xin_KDx_1BAATO0IU6HTo331.jpg



二、配置Apache


1、为某个虚拟主机配置用户认证

需求:用户访问/data/www/abc目录下的123.txt文件需要认证

[root@tpp www]# mkdir abc
[root@tpp www]# cd abc
[root@tpp abc]# cp /etc/passwd 123.txt
[root@tpp abc]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

在相应的虚拟主机配置文件段,加入以下代码(中文注解,不要加进去,要不然会报错)

<Directory /data/www/abc>
  AllowOverride AuthConfig
  AuthName "自定义的"
  AuthType Basic
  AuthUserFile /data/.htpasswd   # 这里的/data/.htpasswd可以随便写一个路径或名字,没有限制
  require valid-user
</Directory>

如图:

wKiom1Xi8Ruzia-wAAHmrQnwBx4559.jpg

保存后,然后创建apache的验证用户

[root@tpp abc]# /usr/local/apache2/bin/htpasswd -c /data/.htpasswd tpp

第一次创建用户tpp要用到-c 参数,第2次添加用户,就不用-c参数,因为-c是创建的意思,如果加上会把这个文件重写。

[root@tpp abc]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp abc]# /usr/local/apache2/bin/apachectl restart

接着我们来访问下 www.tpp.com/abc/123.txt 如下图:

wKioL1Xi9Y-g8PPfAAFYB3ImxS4603.jpg

上面有乱码,是字符集问题,因为配置文件写了“自定义的”,我们可以写成英文的。


2、配置域名跳转

需求:要把访问域名 www.ppt.com(或www.ppt1.com) 的域名转发到 www.tpp.com 上
实现:

[root@tpp abc]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf  //增加如下内容
<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^www.ppt.com$
   RewriteRule ^(.*)$ http://www.tpp.com/$1 [R=301,L]
</IfModule>

如果是多个域名重定向到一个域名

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{HTTP_HOST} ^www.ppt.com [OR]
   RewriteCond %{HTTP_HOST} ^www.ppt1.com$
   RewriteRule ^/(.*)$ http://www.tpp.com/$1 [R=301,L]
</IfModule>

如下图所示:

wKioL1Xi-wjQKDYfAAMUAHyJ90I117.jpg

然后重新重新检测和加载Apache

[root@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful

下面我们在浏览器输入www.ppt.com或者www.ppt1.com时,会自动跳转到www.tpp.com,不过前提是在本机的C:\Windows\System32\drivers\etc下的hosts文件添加了www.tpp.com


3、配置apache的访问日志,并以一天时间来分割。

[root@tpp ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 

wKiom1Xi_sfTLBLuAAI3fnxQ3X0375.jpg

修改为以日期为命名的错误日志和访问日志

ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/tpp.com-error_%Y%m%d.log 86400"
   SetEnvIf Request_URI ".*\.gif$" image-request
   SetEnvIf Request_URI ".*\.jpg$" image-request
   SetEnvIf Request_URI ".*\.png$" image-request
   SetEnvIf Request_URI ".*\.bmp$" image-request
   SetEnvIf Request_URI ".*\.swf$" image-request
   SetEnvIf Request_URI ".*\.js$" image-request
   SetEnvIf Request_URI ".*\.css$" image-request
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/tpp.com-access_%Y%m%d.log 86400" combined env=!image-request

如下图:

wKiom1XjBxaDVHY8AAMIqOoRNG8714.jpg

其中命令都是以绝对路径,rotatelogs是分割工具,%Y%m%d时间为分割单位,86400秒为一天。SetEnv为自定义的,下面访问日志可以调用env,即不记录以gif、jpg等结尾的文件。

接着我们从新检测和加载Apache

[root@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful

然后我们刷新下网页就会看到有日志生成,如下图:

wKioL1XjCebwu0YJAACkH6nR2og474.jpg

注意:日积月累访问日志会越来越多,下面我们写个脚本进行删除一个月前的访问日志:

[root@tpp ~]# vim /usr/local/apache2/logs/logcron.sh

#! /bin/bash
# delete access logs
keepdays=31
log_files="/usr/local/apache2/logs/tpp.com-access"
rm -f ${log_files}_$(date +"%Y%m%d" --date="-${keepdays} day").log

加入到计划任务中,每天零点执行:

[root@tpp ~]# crontab -e
00 00 * * * /bin/bash/ /usr/local/apache2/logs/logcron.sh



4、Apache配置静态缓存

把浏览网页的静态文件设置为缓存,文件缓存之后不用再调用,节省带宽。

[root@tpp www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 

在之前的日志文件定义的下面接着定义一个模块

<IfModule mod_expires.c>
  ExpiresActive on
  ExpiresByType image/gif "access plus 1 days"
  ExpiresByType image/jpeg "access plus 24 hours"
  ExpiresByType image/png "access plus 24 hours"
  ExpiresByType text/css "now plus 2 hours"
  ExpiresByType application/x-javascript "now plus 2 hours"                
  ExpiresByType application/javascript "now plus 2 hours"
  ExpiresByType application/x-shockwave-flash "now plus 2 hours"
  ExpiresDefault "now plus 0 min"
</IfModule>

如下图所示:

wKiom1XjDHPwsTaIAAIzA2QxnHc251.jpg

接着我们从新检测和加载Apache

[root@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful

下面我们来测试是否成功,在/data/www/目录下新建两个文件:1.txt和1.jpg,其中txt不是我们上面定义的静态文件。

[root@tpp www]# touch 1.txt 1.jpg
[root@tpp www]# curl -x127.0.0.1:80 www.tpp.com/1.txt -I

wKioL1XjEX3Te8PnAAHJLUMUgw0254.jpg

[root@tpp www]# curl -x127.0.0.1:80 www.tpp.com/1.jpg -I

wKiom1XjD3_xYf2KAAHhB0lZwHw047.jpg


5、Apache配置防盗链接

[root@tpp www]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf  //加入如下模块
SetEnvIfNoCase Referer "^http://www.tpp.com" local_ref
SetEnvIfNoCase Referer "www.ppt.com" local_ref
SetEnvIfNoCase Referer "^$" local_ref
<filesmatch" \.(txt|doc|mp3|zip|rar|jpg|gif|png)">
   Order Allow,Deny
   Allow from env=local_ref
</filesmatch>

如下图所示(一定要注意空格,不然会报错):

wKioL1XjGEOxCR7iAAF91MS_hz0284.jpg

接着重新检测和加载Apache

[root@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful

现在我们的这些txt|doc|mp3|zip|rar|jpg|gif|png文件,不能被其他网站作为网络链接而引用了。



6、访问控制

方法一:

为了安全期间,有时我们需要限制网站下的某些目录对于php脚本不能执行。

实例:对/data/www/下的data目录进行控制。

首先在/data/www/data目录下建个文件1.php,内容如下:

<?php
echo "1234345";
?>

然后我们直接访问下,如下图所示:

wKioL1XkaITApms2AABKkRL7wjQ274.jpg

下面我们配置httpd-vhosts.conf文件,在相关的虚拟主机段,加入以下内容:

<Directory /data/www/data>
   php_admin_flag engine off            
   <filesmatch "(.*)php">
      Order deny,allow
      Deny from all
      Allow from 127.0.0.1
   </filesmatch>
</Directory>

如图:

wKioL1XkaMvgUW5jAADGzMXi5Cg515.jpg

从新检测和加载Apache

[root@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful

接着我们来做下访问测试,结果如图:

wKioL1XkaUigqO6vAACQZq9n8Ow866.jpg

由上图可知不能访问了。


方法二:

用rewrite进行禁止操作。

我们在/data/www/的/tmp/目录下新建12.txt文件,写入以下内容:

vim 12.txt
123456789

把以下代码拷贝到/usr/local/apache2/conf/extra/httpd-vhosts.conf文件中,添加到IFModulemod_rewrite.c模块中。      

RewriteCond %{REQUEST_URI} ^.*/tmp/.* [NC] //NC表示不区分大小写
RewriteRule .* - [F]

如下图所示:

wKioL1XkckyTYUMKAAHEa44vOyY605.jpg

如下图所示:禁止访问

wKioL1Xkcoah-Qi5AACK9wIK1CI370.jpg


7、Apache限制指定user_agent

把以下代码拷贝到/usr/local/apache2/conf/extra/httpd-vhosts.conf文件中,添加到IFModulemod_rewrite.c模块。    

    RewriteCond %{HTTP_USER_AGENT} ^.*curl* [NC,OR]    
   RewriteCond %{HTTP_USER_AGENT} ^.*chrome* [NC]
   RewriteRule .* - [F]

如下图所示:

wKioL1XkbT_h5PjZAAGmLRfxE8o616.jpg

下面我们进行测试:

测试1

curl -x127.0.0.1:80 www.tpp.com/forum.php

如下图所示:显示403

wKioL1XkbW3R5t-sAAGMnq-HfkQ177.jpg

测试2、我们先把RewriteCond %{HTTP_USER_AGENT} ^.*curl* [NC,OR] 注释掉,就是开放curl。

curl -A "adafkangfhchromedeafa" -x127.0.0.1:80 www.tpp.com/forum.php

如图所示:同样是403,因为我们那里有chrome关键字,虽然curl开放,但chrome是被禁掉的。

wKiom1XkbGujhUIcAAGsd9G90K4253.jpg



8、Apache的工作模式和最大并发请求数设置(参考以下两篇文章)

http://blog.csdn.net/davissuperman/article/details/40738507

http://www.365mini.com/page/apache-concurrency-configuration.htm




三、配置PHP


查找php配置文件的命令

[root@tpp ~]# /usr/local/php/bin/php -i |head
phpinfo()
PHP Version => 5.3.27

System => Linux tpp 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686
Build Date => Aug 30 2015 02:08:41
Configure Command =>  './configure'  '--prefix=/usr/local/php' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-config-file-path=/usr/local/php/etc' '--with-mysql=/usr/local/mysql' '--with-libxml-dir' '--with-gd' '--with-jpeg-dir' '--with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-zlib-dir' '--with-bz2' '--with-openssl' '--with-mcrypt' '--enable-soap' '--enable-gd-native-ttf' '--enable-mbstring' '--enable-sockets' '--enable-exif' '--disable-ipv6'
Server API => Command Line Interface
Virtual Directory Support => disabled
Configuration File (php.ini) Path => /usr/local/php/etc
Loaded Configuration File => /usr/local/php/etc/php.ini

从上面我们可以看到版本信息、配置信息、还有配置文件等。


1、配置disable_function


disable_function是禁用函数,我们为了安全考虑,需要禁掉一些函数。

[root@tpp ~]# vim /usr/local/php/etc/php.ini
disable_functions=eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close

如下图所示:

wKiom1XlvyiR-RzfAAIoPB6nDeo854.jpg

特别是shell_exec函数,一定要禁掉。

接着我们从新检测和加载Apache

[root@tpp ~]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp ~]# /usr/local/apache2/bin/apachectl graceful

2、配置error_log

配置错误日志,也是在/usr/local/php/etc/php.ini文件下配置

[root@tpp ~]# vim /usr/local/php/etc/php.ini

display_errors=Off               #默认off,on表示配置文件报错了会在页面显示,off则显示空白页面
log_errors=On                    #默认on,开启错误日志记录功能
error_log=/usr/local/php/logs/error.log   #定义错误日志具体的路径

wKioL1XlxZCj9SQvAADgvSZIqG8091.jpg

错误日志存放路径写绝对路径,注意定义的路径要创建日志目录,不然无法生成日志

[root@tpp ~]# mkdir /usr/local/php/logs/
[root@tpp ~]# chmod 777 /usr/local/php/logs/    #要给Apache用户读写执行权限

接着我们配置日志格式级别

error_reporting = E_ALL & ~E_NOTICE     #“&”并且,“~”取反意思

wKiom1XlxTnAaH4OAAB9bJfuV9E954.jpg

接着我们从新检测和加载Apache

[root@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful

要是网页出现了错误,我们就可以查看该日志文件了。


3、配置open_basedir

作用:将用户可操作的文件限制在某目录下

[root@tpp ~]# vim /usr/local/php/etc/php.ini

open_basedir = /data/www:/tmp       #默认关闭,我们可以限定死

如图:

wKioL1XlyJixnEekAAD5HNwDrfs533.jpg

接着我们从新检测和加载Apache

[root@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful

这样用户只能访问/data/www和/tmp这两个目录,其他的目录就不能访问;并且这样所有的虚拟主机都不能访问。这样要是有多个虚拟主机多个网站的话,就区分不开到底是哪个主机不能访问了,所以我们可以在Apache配置文件下,针对每个虚拟主机定义一个open_basedir,操作如下:

[root@tpp ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
php_admin_value open_basedir "/data/www/:/tmp/"

如图:

wKioL1Xlys-xe02PAAHQls6mIbk151.jpg

接着我们从新检测和加载Apache

[root@tpp htdocs]# /usr/local/apache2/bin/apachectl -t
Syntax OK
[root@tpp htdocs]# /usr/local/apache2/bin/apachectl graceful


4、安装PHP的扩展模块(动态加载模块)

查看已安装哪些模块

[root@tpp ~]# /usr/local/php/bin/php -m

php源码包里自带了很多源码,都在/usr/local/src/php-5.3.27/ext/目录下:

[root@tpp ~]# ls /usr/local/src/php-5.3.27/ext/

a、若我们需要的源码包在这个目录下,我们可以直接编译安装,如curl:

[root@tpp ~]# cd /usr/local/src/php-5.3.27/ext/curl
[root@tpp curl]# /usr/local/php/bin/phpize            //生成configure文件
[root@tpp curl]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@tpp curl]# make
[root@tpp curl]# make install

b、若没有,我们需要去下载源码,如memcache:

[root@tpp ~]# cd /usr/local/src/
[root@tpp src]# wget http://pecl.php.net/get/memcache-2.2.3.tgz
[root@tpp src]# tar -zxvf memcache-2.2.3.tgz
[root@tpp src]# cd memcache-2.2.3
[root@tpp memcache-2.2.3]# /usr/local/php/bin/phpize
[root@tpp memcache-2.2.3]# ./configure --with-php-config=/usr/local/php/bin/php-config
[root@tpp memcache-2.2.3]# make
[root@tpp memcache-2.2.3]# make install

生成模块的文件会放在/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/目录下

[root@tpp no-debug-non-zts-20090626]# ls
curl.so  memcache.so

如图:

wKioL1Xpm6nCLR0FAADnA830h-Y176.jpg下面我们编辑/usr/local/php/etc/php.ini配置文件,配置并加载curl、memcache

[root@tpp ~]# vim /usr/local/php/etc/php.ini         //添加下面两句
extension=curl.so
extension=memcache.so

如图所示:

wKiom1XpnHCCbwp1AACI4ZevdB8687.jpg

退出保存后我们查看下是否动态加载了curl、memcache两个模块

[root@tpp ~]# /usr/local/php/bin/php -m

如图所示(加载成功):

wKiom1XpnKihtUWAAAEWeCWbrR8791.jpg



四、配置MySQL


MySQL的配置文件

[root@tpp ~]# vim /etc/my.cnf

熟悉MySQL配置常用的参数

wKioL1Xpo9CxX8OrAAJ9KF6jm-U795.jpg


关于MySQL的一些基本的操作如下:

MySQL密码设置和重置,以及远程登入数据库:http://msiyuetian.blog.51cto.com/8637744/1691432

MySQL常用操作:http://msiyuetian.blog.51cto.com/8637744/1691516

MySQL备份与恢复:http://msiyuetian.blog.51cto.com/8637744/1691558




      本文转自 M四月天 51CTO博客,原文链接:http://blog.51cto.com/msiyuetian/1689618,如需转载请自行联系原作者







相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
SQL 关系型数据库 MySQL
mysql主从复制概述和配置
【10月更文挑战第22天】MySQL 主从复制是一种将主服务器的数据复制到一个或多个从服务器的技术,实现读写分离,提高系统性能和可用性。主服务器记录变更日志,从服务器通过 I/O 和 SQL 线程读取并应用这些变更。适用于读写分离、数据备份和恢复、数据分析等场景。配置步骤包括修改配置文件、创建复制用户、配置从服务器连接主服务器并启动复制进程。
238 1
|
3月前
|
数据库连接 PHP Apache
PHP在Apache中如何运行?
PHP在Apache中如何运行?
83 5
|
3月前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
3月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
313 2
|
4月前
|
SQL 关系型数据库 MySQL
Mysql中搭建主从复制原理和配置
主从复制在数据库管理中广泛应用,主要优点包括提高性能、实现高可用性、数据备份及灾难恢复。通过读写分离、从服务器接管、实时备份和地理分布等机制,有效增强系统的稳定性和数据安全性。主从复制涉及I/O线程和SQL线程,前者负责日志传输,后者负责日志应用,确保数据同步。配置过程中需开启二进制日志、设置唯一服务器ID,并创建复制用户,通过CHANGE MASTER TO命令配置从服务器连接主服务器,实现数据同步。实验部分展示了如何在两台CentOS 7服务器上配置MySQL 5.7主从复制,包括关闭防火墙、配置静态IP、设置域名解析、配置主从服务器、启动复制及验证同步效果。
196 0
Mysql中搭建主从复制原理和配置
|
4月前
|
关系型数据库 MySQL Java
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
这篇文章是关于如何使用Django框架配置MySQL数据库,创建模型实例,并自动或手动创建数据库表,以及对这些表进行操作的详细教程。
149 0
Django学习二:配置mysql,创建model实例,自动创建数据库表,对mysql数据库表已经创建好的进行直接操作和实验。
|
24天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
11天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
82 42
|
2天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
40 25
|
28天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
232 0

热门文章

最新文章

推荐镜像

更多