CentOS使用本地yum源搭建LAMP环境图文教程
本文实例讲述了CentOS使用本地yum源搭建LAMP环境。分享给大家供大家参考,具体如下:
【准备工作】
配置防火墙,开启80端口、3306端口
vi /etc/sysconfig/iptables
如图,添加下面两条:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通过防火墙
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #允许3306端口通过防火墙
重启防火墙使配置生效
/etc/init.d/iptables restart
关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq! #保存退出
重启系统
shutdown -r now
【安装Apache】
执行安装
yum -y install httpd
启动Apache
service httpd restart
或:
/etc/init.d/httpd start
Apache启动之后会提示错误Could not reliably determine the server’s fully qualifdomain name, using ::1 for ServerName,解决方法:
vi /etc/httpd/conf/httpd.conf
找到 #ServerName www.example.com:80
修改为 ServerName www.lws.com:80
(设置为自己的域名 或 ServerName localhost:80
)
:wq!#保存退出
设为开机启动
chkconfig httpd on
检查安装 访问主机地址 如图所示安装成功
修改Apache配置
vi /etc/httpd/conf/httpd.conf #建议使用ftp工具 修改之前做好备份
修改如下:
ServerTokens OS #在44行 修改为:ServerTokens Prod (在出现错误页的时候不显示服务器操作系统的名称)
ServerSignature On #在536行修改为:ServerSignature Off (在错误页中不显示Apache的版本)
Options Indexes FollowSymLinks #在331行修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录)
#AddHandler cgi-script .cgi #在796行 修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)
AllowOverride None #在338行修改为:AllowOverride All (允许.htaccess)
AddDefaultCharset UTF-8 #在759行 修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码)
Options Indexes MultiViews FollowSymLinks #在554行 修改为Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)
DirectoryIndex index.html index.html.var #在402行 修改为:DirectoryIndexindex.html index.htm Default.html Default.htm index.php Default.phpindex.html.var (设置默认首页文件,增加index.php)
KeepAlive Off #在76行 修改为:KeepAlive On (允许程序性联机)
MaxKeepAliveRequests 100 #在83行 修改为:MaxKeepAliveRequests1000 (增加同时连接数)
删除两个默认测试页
rm -f /etc/httpd/conf.d/welcome.conf /var/www/error/noindex.html
重启Apache
service httpd restart
或
/etc/init.d/httpd restart
【安装MySQL】
执行安装
yum -y install mysql mysql-server
启动MySQL
/etc/init.d/mysqld start
设为开机启动
chkconfig mysqld on
拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
为root账户设置密码
mysql_secure_installation
#回车,根据提示输入Y,输入2次密码,回车,根据提示一路输入Y最后出现:Thanks for using MySQL设置完成
或者
mysqladmin -u root password '密码'
允许远程登录
mysql -u root -p
输入密码 输入mysql命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
退出mysql:exit
重启MySQL
service mysqld restart
【安装PHP5】
执行安装
yum -y install php
安装PHP组件(这里选择以下安装包,根据提示输入Y回车安装)
复制代码 代码如下:
yum install php-mysql php-gd libjpeg* php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-bcmath php-mhash libmcrypt
修改PHP配置
vi /etc/php.ini #建议使用ftp工具 修改之前做好备份
修改如下:
date.timezone= PRC #在946行 把前面的分号去掉,改为date.timezone = PRC
复制代码 代码如下:
disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname #在386行 列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。
expose_php = Off #在432行 禁止显示php版本的信息
magic_quotes_gpc = On #在745行 打开magic_quotes_gpc来防止SQL注入
short_open_tag = On #在229行支持php短标签
open_basedir = .:/tmp/
#在380行 设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php木马跨站,如果改了之后安装程序有问题,可以注销此行,或者直接写上程序的目录/data/www.osyunwei.com/:/tmp/
重启MySQL、Apahe
service mysqld restart
service httpd restart
(到此完成yum源搭建LAMP环境,我们可以查看一下各部分的安装版本)
查看Apache版本
httpd -v
查看PHP版本
php –v
查看MySQL版本
mysql -V
(注意大写)
希望本文所述对大家CentOS服务器配置有所帮助。
- SpringMVC中@RequestBody引起的400异常处理,返回校验失败具体信息
- 关于primary key和unique index的奇怪问题 (58天)
- 在centos7上安装Jenkins
- Spring resource bundle多语言,单引号format异常
- String的内存模型,为什么String被设计成不可变的
- Ubuntu安装Java8和Java9
- session跟踪失效的问题和分析(57天)
- 第1章:初识编程
- 十分钟学会 tmux
- 网络慢?看看路由器设置对不对
- 为什么房间的 Wi-Fi 信号这么差
- 照着官方文档学习react
- 用R语言写个贝叶斯模型 预测我的妻子是否怀孕
- NodeJS 初学之安装配置环境
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 翻了翻element-ui源码,发现一个很实用的指令clickoutside
- 自研网关:限流功能的开发
- 如果JSP中无法自动提示EL表达式的解决方法(针对普通项目和maven有不同的方法)
- Android通过ExifInterface判断Camera图片方向的方法
- Python PyQt5整理介绍
- django API 中接口的互相调用实例
- Python Numpy中数据的常用保存与读取方法
- python使用梯度下降和牛顿法寻找Rosenbrock函数最小值实例
- Django Admin设置应用程序及模型顺序方法详解
- 在 Pycharm 安装使用black的方法详解
- Android开发手机无线调试的方法
- Android Studio Gradle插件版本与Gradle版本之间的对应关系
- Android Usb设备的监听(Dev)外设端口的判定以及耳机的插拔
- Android自定义View实现简单文字描边功能
- 在脚本中单独使用django的ORM模型详解