最近在Linux平台上配置服务器部署网站(说多了都是泪!),记个笔记!

一、首先是在centos下安装mysql (参考博客

mysql yum库提供了一个简单的和方便的方法来安装和更新MySQL相关的软件包到最新版本。 参考文档:http://dev.mysql.com/downloads/repo/yum/.

1.安装之前先看看有没有安装好的mysql版本,以免产生冲突

# rpm -qa | grep mysql  // 查看该操作系统上是否已经安装了mysql

2.卸载冲突的版本

# rpm -e mysql  // 普通删除模式
# rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

3.删除后通过 rpm -qa | grep mysql 命令来查看mysql是否卸载成功!!

4.安装mysql

# yum list | grep mysql //查看yum上提供的mysql数据库可下载的版本
# rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm //安装mysql
# mysql -v //查看安装mysql的版本
# yum install mysql-community-server //启用mysql还需要安装mysql的服务器,通过此命令安装
# service mysqld start //启动mysql
# chkconfig mysqld on //设置Mysql开机启动
# grant all privileges on *.* to 'admin'@'%' identified by '123456' with grant option; //设置Mysql远程访问
// 注:admin为数据库用户名,123456为密码,@'%'表示允许任何IP连接数据库。该操作在数据库命令下进入mysql这个数据库进行
# service mysqld restart //重启服务

二、在centos下安装php参考博客

1.下载php安装包(自行建个目录 如: /home/download)

# wget http://mirrors.sohu.com/php/php-5.6.2.tar.gz  //版本可自行选择

2.安装php5.6编译时所依赖的软件包

# yum -y install gcc gcc-c++ libxml2 libxml2-devel  //安装依赖包

3.解压刚刚下载的php5.6源码包

# tar -xf php-5.6.2.tar.gz //解压源码包

4.进入解压出来的目录,./configure 是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系。

# cd php-5.6.2  //进入解压出来的目录
# ./configure --enable-fpm --enable-mbstring --with-mysql=/usr --enable-pdo --with-pdo-mysql // 检查当前的环境是否满足要安装软件的依赖关系

5.使用make命令,编译php

# make  //编译php

注:php编译的时间比较长,根据机器的性能不同需要等待10-20分钟左右。请耐心等候!

6.编译完毕后,我们现在开始安装php

# make install  //安装php

7.安装完毕后,我们可以通过php –v命令查看是否安装成功

# php –v  //查看版本号

8.通过这样安装完毕后,你会发现在/usr/local/lib目录下没有php.ini文件。在这我们就先复制php安装文件提供的模版,如下:

# cp php.ini-production /usr/local/lib/php.ini  //将php.ini-production文件复制到 /usr/local/lib/php.ini

注:不要以为到这php的安装就完毕了,LNMP环境中的nginx是不支持php的,需要通过fastcgi来处理有关php的请求。而php需要php-fpm这个组件来支持。

在php5.3.3以前的版本php-fpm是以一个补丁包的形式存在的,而php5.3.3以后的php-fpm只需要在安装php-fpm开启这个功能即可。这个也就是前边,我们再配置php使用到的那个命令--enable-fpm。

php-fpm功能开启后,我们还需要配置php-fpm。其实php-fpm的配置文件在安装php时,已经为我们提供了一个配置文件的模版。该模版为/usr/local/etc/php-fpm.conf.default  (可通过more /usr/local/etc/php-fpm.conf.default 命令查看)

9.同样只需要复制一份该文件,并重命名为php-fpm.conf

# cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf

10.为了让php-fpm已服务的形式启动。我们需要复制php安装目录下/sapi/fpm/init.d.php-fpm文件

# cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

11.php-fpm文件目前没有执行权限。我们要赋予php-fpm执行权限,并启动php-fpm

# chmod a+x /etc/init.d/php-fpm //赋予php-fpm执行权限
# /etc/init.d/php-fpm start //启动php-fpm
# netstat -tunlp |grep 9000 //查看(php-fpm默认监听的是9000端口)

 三、在centos下安装nginx参考博客

1.安装依赖库,系统已有可以跳过。

# yum install -y gcc gcc-c++ autoconf automake
# yum install -y zlib zlib-devel openssl openssl-devel pcre-devel

注:不安装这些依赖库,后面编译的时候会报错,当然你的系统已经有这些包可以跳过。

pcre: 用来作地址重写的功能。 
zlib:nginx 的gzip模块,传输数据打包,省流量(但消耗资源)。 
openssl:提供ssl加密协议。

2.下载nginx并安装

# wget http://nginx.org/download/nginx-1.9.9.tar.gz  //下载nginx压缩包
# tar -zxvf nginx-1.9.2.tar.gz //解压压缩包
# cd nginx-1.9.2 //进入解压出来的目录
# ./configure //检查当前的环境是否满足要安装软件的依赖关系
# make //编译nginx
# make install //安装mginx

3.nginx默认安装在/usr/local/nginx/,按理到这里你已经可以启动nginx服务了,然而并不是。这时候是没有nginx服务的,你需要创建服务。

#vim  /etc/init.d/nginx  //用vim打开/etc/init.d/nginx 
输入下面的内容
#!/bin/bash
# chkconfig:235 85 15
# description: Nginx is an HTTP server
. /etc/rc.d/init.d/functions
start() {
echo "Start..."
/usr/local/nginx/sbin/nginx &> /dev/null
if [ $? -eq 0 ];then
echo "Start successful!"
else
echo "Start failed!"
fi
}
stop() {
if killproc nginx -QUIT ;then
echo "Stopping..."
fi
}
restart() {
stop
sleep 1
start
}
reload() {
killproc nginx -HUP
echo "Reloading..."
}
configtest() {
/usr/local/nginx/sbin/nginx -t
}
case $1 in
start)
start ;;
stop)
stop ;;
restart)
restart ;;
reload)
reload ;;
configtest)
configtest ;;
*)
echo "Usage: nginx {start|stop|restart|reload|configtest}"
;;
esac

4.给这个文件可执行权限,不然会没权限启动服务

# chmod  +x  /etc/init.d/nginx  //给这个文件可执行权限

5.最后启动nginx

# service nginx start  //启动nginx

四、配置nginx,使其支持php(ThinkPHP)

1.打开nginx配置文件  /etc/nginx/nginx.conf   在server内输入下面的内容 让它支持php(thinkphp)

 location ~ \.php/?.* {
root /home/www/XXXX;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
#定义变量 $path_info ,用于存放pathinfo信息
set $path_info "";
#定义变量 $real_script_name,用于存放真实地址
set $real_script_name $fastcgi_script_name;
#如果地址与引号内的正则表达式匹配
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
#将文件地址赋值给变量 $real_script_name
set $real_script_name $1;
#将文件地址后的参数赋值给变量 $path_info
set $path_info $2;
}
#配置fastcgi的一些参数
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
}
# service nginx restart  //重新启动nginx

3.当然可以在ngnix服务器中设置多个站点(参考博客

注:过程中可能会遇到各种问题,读者自己需要不断的摸索,解决问题,注意错误提示。要坚持!!!

centos 7下配置mysql+php(ThinkPHP)+nginx的更多相关文章

  1. CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架 2018.3.11

    CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架 阿里云服务器的选择 当然是选择学生优惠啦.这里阿里云还提供了轻量级服务器这个选项,可以预装 LA ...

  2. CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架

    <!doctype html> CentOS 7 下配置 Nginx + PHP7.1 + MariaDB 以及 Laravel 框架.mdhtml {overflow-x: initia ...

  3. CentOS和Windows下配置MySQL远程访问的教程

    CentOS和Windows下配置MySQL远程访问的教程   一.前言 由于实验在云服务器上跑的结果不是很理想.所以,现在切换到局域网服务器.因此,需要重新配置 Windows 服务器和 CentO ...

  4. 在CentOS/Windows下配置Nginx(以及踩坑)

    在CentOS/Windows下配置Nginx(以及踩坑) 1. 序言 因为这类文章网上比较多,实际操作起来也大同小异,所以我并不会着重于详细配置方面,而是将我配置时踩的坑写出来. 2. CentOS ...

  5. CentOS服务器下对mysql的优化

    原文链接: CentOS服务器下对mysql的优化 一.mysql的优化思路 mysql的优化分为两方面: 1. 服务器使用前的优化 2. 服务使用中的优化 二.mysql的基础优化步骤 1. 硬件级 ...

  6. CentOS 7安装配置MySQL 5.7

    概述 前文记录了在Windows系统中安装配置MySQL 5.7(前文连接:https://www.cnblogs.com/Dcl-Snow/p/10513925.html),由于安装部署大数据环境需 ...

  7. CentOS 7 下安装 MySQL 5.7

    从 CentOS 7 系统开始,MariaDB 成为 yum 源中默认的数据库安装包.在 CentOS 7 及以上的系统中使用 yum 安装 MySQL 包将无法使用 MySQL.您可以选择使用完全兼 ...

  8. CentOS 7 下安装 MySQL 8.x

    CentOS 7 下安装 MySQL 8.x 作者:Grey 原文地址: 博客园:CentOS 7 下安装 MySQL 8.x CSDN:CentOS 7 下安装 MySQL 8.x 环境 CentO ...

  9. linux下配置mysql默认编码utf8

    linux下配置mysql默认编码utf8 下面是需要在对应地方加入的配置 [client] default-character-set=utf8 [mysqld] character-set-ser ...

随机推荐

  1. C++学习笔记(七):函数

    函数通用格式: typeName functionName(parameterList) { //statements return value;//value is type cast to typ ...

  2. C#- Winform调用BAT例子

    前段时间在工作的时候需要用到,百度了好久后找,可是找到了又希望调用的时候窗体不要显示出来. proc.StartInfo.CreateNoWindow = true;       proc.Start ...

  3. Visual C#使用DirectX实现视频播放

    Visual C#使用DirectX实现视频播放 visual|视频播放 - 很多人第一次接触到DirectX大都是通过游戏,至于安装.升级DirectX的原因无非是满足游戏运行的需要.Direct ...

  4. 实例:ABAP权限对象设计与权限检查的实现(详细)

    学习总结,分享给大家,,,(有图有真像) 我在ECC里创建了一张表,随意插入了5条数据 创建权限对象,使分配这个权限的用户只能操作部门编号(edept)为 ‘10’ 的数据. 1. SU20,创建权限 ...

  5. Remove “System Program Problem Detected” Messages From Ubuntu

    One of my Ubuntu systems would pop up the following message multiple times after logging in: System ...

  6. 将某个组中的账户移动到新的OU下

    将某个组中的账户移动到新的OU下 #定义组名 $groupname = "testg" #定义新的OU名称 $newou = "OU=oo,OU=Admins,dc=dd ...

  7. 用HTML5 Canvas 做擦除及扩散效果

    2013年的时候曾经使用canvas实现了一个擦除效果的需求,即模拟用户在模糊的玻璃上擦除水雾看到清晰景色的交互效果.好在2012年的时候学习HTML5的时候研究过canvas了,所以在比较短的时间内 ...

  8. 如何限制input只能输入数字

    在input上增加onkeyup和onafterpaste事件,事件中用正则表达式替换其它字符,测试没有问题. <input type="text" value=" ...

  9. 正则匹配ab不匹配aab

    var a = "aababaabababababaab"; a.replace(/(^|[^a])(ab)+/g, "$1"); var a = " ...

  10. 微软雅黑字体IE6 opacity改变,字体会变样子

    微软雅黑字体IE6 opacity改变,字体会变样子,换个字体就好了