centOS7:lamp,lnmp+redis环境快速搭建(yum)

本文提供了一套全面的环境搭建教程,包括防火墙配置、系统语言设置、PHP7、Apache、Nginx、MySQL、Redis的安装与配置过程。适用于CentOS系统的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

趁有空贴一下自己常用的搭建环境代码


防火墙

在一切操作前,先关闭你的防火墙,或者开启某些端口(80,8080,3306等)
大部分新的镜像都是firewall,以下我就以firewall为例

# 查看firewall服务状态
systemctl status firewalld
# 查看firewall的状态
firewall-cmd --state
# 开启、重启、关闭、firewalld.service服务
# 开启
systemctl start firewalld.service
# 重启
systemctl restart firewalld.service
#  关闭
systemctl stop firewalld.service

# 查看防火墙规则
firewall-cmd --list-all 
# 查询端口是否开放
firewall-cmd --query-port=8080/tcp
#  开放80端口
firewall-cmd --permanent --add-port=8080/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

#操作完,记得restart

如果您正在运行防火墙,请运行以下命令以允许HTTP和HTTPS通信:

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

#重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload

参数解释:
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
2、–permanent:表示设置为持久;
3、–add-port:标识添加的端口;


切换英文系统语言

# 当前系统为英文字符集,需要切换到中文字符集
cat /etc/locale.conf

# 切换到英文字符集
echo "LANG=en_US.utf8" > /etc/locale.conf

# 重启服务器操作
reboot

php7

# 首先确认yum源的地址是否有效
yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

# 如果想删除上面安装的包,重新安装
rpm -qa | grep webstatic
rpm -e  上面搜索到的包即可

# 如果想换成php5.6,把70w改成56w,下面带的拓展,大部分项目都能吃掉,如果有缺,可另外再安装。
yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64 php70w-process php-xml php70w-fpm

# 如果失败,清缓存再执行以上
yum clean all

这时候你会发现,他将apache也一并安装上了,如果你不想要apache,可以执行删除

# 删除apache
yum remove httpd

Apache

# 查看centos版本
cat /etc/redhat-release

# 检查是否装相关应用 
# 检查apache
httpd -v
# 如果有安装过,清理下
rpm -qa | grep httpd

# 安装apache
yum install httpd

# 安装apache扩展
yum install httpd-manual mod_ssl mod_perl mod_auth_mysql

# 启动apache
systemctl start httpd.service #启动apache
systemctl stop httpd.service #停止
systemctl restart httpd.service #重启
systemctl enable httpd.service #开机启动

配置多项目
在/etc/httpd/conf/httpd.conf
最后一行加入

Include conf/extra/httpd-vhosts.conf

然后新建 extra/httpd-vhosts.conf文件并加入

Listen 10089

<VirtualHost *:10089>
	DocumentRoot "/vagrant/my_project"
    ServerName pro.com
    ServerAlias *.pro.com
  <Directory "/vagrant/my_project">
      Options FollowSymLinks ExecCGI
      AllowOverride All
      Order allow,deny
      Allow from all
      Require all granted
  </Directory>
</VirtualHost>

如需绑定内网ip,在主机hosts绑定ip


Nginx

 # 安装nginx
    yum install nginx
    # 启动nginx
    systemctl start nginx #启动nginx
    systemctl stop nginx #停止
    systemctl restart nginx #重启
    systemctl enable nginx #开机启动
    systemctl disable nginx #开机不启动
    
    # 配置php多项目
    vim /etc/nginx/conf.d/my_project.conf
    # 写入
    server {
         listen       8080;
         listen       [::]:8080;
         server_name  _;
         root         /vagrant/my_project;
         index index.php index.html index.htm;
 
         # Load configuration files for the default server block.
 
         location / {
                 try_files $uri $uri/ /index.php?$query_string;
         }
         error_page 404 /404.html;
         error_page 500 502 503 504 /50x.html;
         location = /50x.html {
             root /usr/share/nginx/html;
         }
 
         location ~ \.php$ {
             try_files $uri =404;
             fastcgi_pass 127.0.0.1:9000;
             fastcgi_index index.php;
             fastcgi_param SCRIPT_FILENAME /vagrant/my_project$fastcgi_script_name;
             include fastcgi_params;
         }
     }
 # 重启nginx

nginx的默认配置文件在 </etc/nginx/nginx.conf> 中,在中间你会发现一行

# 注意:是在 http{} 中
include /etc/nginx/conf.d/*.conf;

这是基础配置,需要配置多站点都在目录</etc/nginx/conf.d/>下建立,一个站点配置一个conf文件


Mysql

yum -y install mysql
发现报错!
原因是在centos7中,mysql被mariadb代替了,默认把mariadb视为mysql.解决如下

# 安装mariadb 
yum install mariadb
yum install mariadb-server

# 安装php-mysql 
yum install php-mysql

#安装mysql扩展
yum install mysql-connector-odbc libdbi-dbd-mysql mysql-devel
yum install mariadb-embedded mariadb-libs mariadb-bench mariadb mariadb-sever 

# 启动mysql
systemctl start mariadb.service #启动 
systemctl stop mariadb.service #停止
systemctl restart mariadb.service #重启
systemctl enable mariadb.service #设置开启启动

配置mysql
初次安装mysql是没有密码的,要设置密码,默认账户为root
设置mysql root账户的密码

mysql_secure_installation 

输入当前密码(初次为空,直接回车即可)
此时会发现让你输入[y/n]
依次是:是否设置密码->确认密码->删除匿名用户->不允许root远程连接->删除测试数据库并访问它->重新加载表数据,参考下图
在这里插入图片描述
解决不能远程登录
法一:改表法,登陆mysql

mysql>use mysql;
mysql>update user set host = '%'  where user ='root';(报错不予理会)
MariaDB [mysql]> update user set host = '%' where host = 'localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0
mysql>flush privileges;
mysql> select host, user from user;
mysql>quit

法二:授权法
例如,你想root使用mypassword从任何主机连接到mysql服务器的话。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH   PRIVILEGES;

如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
FLUSH   PRIVILEGES;

Redis

配置编译环境:(报错忽略)

sudo yum install gcc-c++

下载源码:(可以安装自己想要的版本)

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

解压源码:

tar -zxvf redis-3.2.8.tar.gz

进入到解压目录:

cd redis-3.2.8

执行make编译Redis:

make MALLOC=libc

注意:make命令执行完成编译后,会在src目录下生成6个可执行文件,分别是redis-server、redis-cli、redis-benchmark、redis-check-aof、redis-check-rdb、redis-sentinel。
安装Redis:

make install 

配置Redis能随系统启动:

./utils/install_server.sh

显示结果信息如下:(可以全部回车)

Welcome to the redis service installer
This script will help you easily set up a running redis server

Please select the redis port for this instance: [6379] 
Selecting default: 6379
Please select the redis config file name [/etc/redis/6379.conf] 
Selected default - /etc/redis/6379.conf
Please select the redis log file name [/var/log/redis_6379.log] 
Selected default - /var/log/redis_6379.log
Please select the data directory for this instance [/var/lib/redis/6379] 
Selected default - /var/lib/redis/6379
Please select the redis executable path [/usr/local/bin/redis-server] 
Selected config:
Port           : 6379
Config file    : /etc/redis/6379.conf
Log file       : /var/log/redis_6379.log
Data dir       : /var/lib/redis/6379
Executable     : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Successfully added to chkconfig!
Successfully added to runlevels 345!
Starting Redis server...
Installation successful!

Redis服务查看、开启、关闭:
a.通过ps -ef|grep redis命令查看Redis进程
b.开启Redis服务操作通过/etc/init.d/redis_6379 start命令,也可通过(service redis_6379 start)
c.关闭Redis服务操作通过/etc/init.d/redis_6379 stop命令,也可通过(service redis_6379 stop)

完成,够用!

<think>我们有一个用户查询:如何在LNMP环境Linux+Nginx+MySQL+PHP)中安装和配置Redis?根据引用,我们知道LNMP环境已经搭建好,现在需要集成RedisRedis通常用于缓存,提高性能。步骤:1.安装Redis服务器2.安装PHP的Redis扩展3.配置PHP以使用Redis扩展4.在应用中使用Redis(例如,在PHP代码中连接Redis)参考引用[3]和[4],它们提到了Redis的部署和与LNMP的集成。详细步骤:1.安装Redis服务器在Linux上(以CentOS为例)使用yum安装:```bashsudoyuminstallepel-releasesudoyuminstallredis```启动Redis服务并设置开机启动:```bashsudosystemctlstartredissudosystemctlenableredis```2.安装PHP的Redis扩展使用pecl安装(需要安装php-devel):```bashsudoyuminstallphp-devel#如果未安装sudopeclinstallredis```或者,也可以使用yum安装php扩展(如果可用):```bashsudoyuminstallphp-redis```3.配置PHP以使用Redis扩展在php.ini文件中添加扩展。首先找到php.ini的位置,通常位于`/etc/php.ini`或`/etc/php.d/`目录下。在php.ini中添加:```iniextension=redis.so```然后重启PHP-FPM服务:```bashsudosystemctlrestartphp-fpm```4.验证安装创建一个phpinfo页面,查看是否有redis扩展。5.在应用中使用Redis在PHP代码中,可以使用Redis类来连接和操作Redis。例如:```php<?php$redis=newRedis();$redis->connect('127.0.0.1',6379);echo"Connectiontoserversuccessful";$redis->set("test-key","HellofromRedis!");echo"StoredstringinRedis:".$redis->get("test-key");?>```6.配置Redis与MySQL协同工作(可选)通常,Redis作为缓存层,应用程序在查询数据库之前先查询Redis。这需要在应用层进行设计。注意:如果Redis服务器和PHP不在同一台机器上,需要配置Redis的监听地址(修改`/etc/redis.conf`中的`bind`选项)并设置密码(可选)以提高安全性。引用[3]和[4]提到了一些相关操作,但步骤可能不完整。以上步骤是通用步骤,具体可能因系统版本和软件版本略有差异。相关问题:1.如何验证Redis是否成功安装并运行?2.在PHP中如何使用Redis进行会话存储(session)?3.如何配置Redis作为MySQL的缓存?4.如何确保Redis的安全性(如设置密码和防火墙)?5.RedisLNMP环境中常见的性能优化方法有哪些?</think>### LNMP环境中安装和配置Redis的完整指南 在LNMP环境Linux + Nginx + MySQL + PHP)中集成Redis主要涉及以下步骤: #### 1. **安装Redis服务器** ```bash # CentOS/RHEL系统 sudo yum install epel-release sudo yum install redis # Ubuntu/Debian系统 sudo apt install redis-server ``` 启动并设置开机自启: ```bash sudo systemctl start redis sudo systemctl enable redis ``` 验证安装:`redis-cli ping` 应返回 `PONG`[^3] #### 2. **安装PHP的Redis扩展** ```bash # 安装编译依赖 sudo yum install php-devel # CentOS sudo apt install php-dev # Ubuntu # 通过PECL安装扩展 sudo pecl install redis ``` 在`php.ini`中启用扩展(路径通常为`/etc/php.ini`): ```ini extension=redis.so ``` 重启PHP-FPM服务: ```bash sudo systemctl restart php-fpm ``` #### 3. **配置Nginx连接PHP(确保已正确配置)** 检查Nginx的PHP处理配置(参考引用[2]): ```nginx location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } ``` #### 4. **在PHP应用中使用Redis** PHP连接Redis示例: ```php <?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->set("test_key", "Hello Redis!"); echo $redis->get("test_key"); // 输出: Hello Redis! ?> ``` #### 5. **安全配置(可选但推荐)** - **修改Redis密码**:编辑`/etc/redis.conf` ```ini requirepass your_strong_password ``` - **绑定IP**(生产环境): ```ini bind 127.0.0.1 ``` - **防火墙规则**: ```bash sudo firewall-cmd --permanent --add-port=6379/tcp sudo firewall-cmd --reload ``` #### 6. **验证集成** 创建测试文件`/var/www/html/redis_test.php`: ```php <?php phpinfo(); ?> ``` 访问此文件应看到Redis扩展信息(搜索"redis")。 --- ### 关键注意事项 1. **版本兼容性**:确保PHP扩展版本与Redis服务器版本兼容 2. **性能优化**:对于高并发场景,调整`/etc/redis.conf`中的: ```ini maxmemory 1gb # 根据内存调整 maxmemory-policy allkeys-lru ``` 3. **会话存储**:可在`php.ini`中将会话保存到Redis: ```ini session.save_handler = redis session.save_path = "tcp://127.0.0.1:6379" ``` [^1]: LNMP架构中Nginx通过FastCGI与PHP交互,Redis作为独立缓存层接入 [^2]: Nginx的PHP处理配置需确保`fastcgi_param`正确传递脚本路径 [^3]: Redis安装依赖EPEL仓库,PHP扩展需要`php-devel`支持编译 [^4]: MySQL与Redis协同需在应用层实现缓存逻辑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值