PHP 安装

  • 准备工作(必要的依赖包)

    yum -y install bzip2-devel curl-devel freetype-devel gcc libjpeg-devel libpng-devel libxslt-devel libxml2-devel openssl-devel pcre-devel pcre-devel zlib-devel

  • 本地下载安装包

    http://php.net/get/php-7.0.11.tar.gz/from/a/mirror (下载PHP-7.0.11.tar.gz)

  • 将安装包远程传到服务器上

    scp PHP-7.0.11.tar.gz username@ip:/usr/local/PHP-7.0.11.tar.gz

  • 解压安装包

    tar -zxvf PHP-7.0.11.tar.gz

    注:如果报错
      gzip: stdin: not in gzip format
      tar: Child returned status 1
      tar: Error is not recoverable: exiting Now

      
      原因 : 这个压缩包没有用gzip格式压缩,所以不用加z指令!
      tar -xvf PHP-7.0.11.tar.gz

  • 配置安装变量

    ./configure –prefix=/usr/local/PHP –with-curl –with-freetype-dir –with-gd –with-gettext –with-iconv-dir –with-kerberos –with-libdir=lib64 –with-libxml-dir –with-MysqLi –with-openssl –with-pcre-regex –with-pdo-MysqL –with-pdo-sqlite –with-pear –with-png-dir –with-jpeg-dir –with-xmlrpc –with-xsl –with-zlib –with-bz2 –with-mhash –enable-fpm –enable-bcmath –enable-libxml –enable-inline-optimization –enable-gd-native-ttf –enable-mbregex –enable-mbstring –enable-opcache –enable-pcntl –enable-shmop –enable-soap –enable-sockets –enable-sysvsem –enable-sysvshm –enable-xml –enable-zip

    注:./configure –prefix=/usr/local/PHP 是安装路径,可以改成自己喜欢的安装路径。

  • 编译源码

    //在解压目录执行编译命令:make
    cd PHP-7.0.11
    make

    注:编译会花费一些时间,耐心等待即可。编译完成的最后会提示你执行make test命令。就是对上一步 make 的检查,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0。

  • 安装PHP

    make install

  • 配置PHP

    将PHP源码包(/usr/local/PHP-7.0.11)中的PHP.ini-development文件复制到/usr/local/PHP/下,更名为PHP.ini。

    cp /usr/local/PHP-7.0.11/PHP.ini-development /usr/local/PHP/PHP.ini
    cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf
    cp /usr/local/PHP/etc/PHP-fpm.d/www.conf.default /usr/local/PHP/etc/PHP-fpm.d/www.conf

    配置PHP.ini

    cgi.fix_pathinfo=0 
  • 启动PHP-fpm

    /usr/local/PHP/sbin/PHP-fpm
  • 检查PHP-fpm工作情况

    PHP-fpm 服务器默认的端口是9000,查看9000端口是否有进程被监听

    netstat -tln | grep 9000 

安装Nginx

  • 准备工作必要依赖包安装

    在安装Nginx前首先要确认系统中安装了gcc、pcre-devel、zlib-devel、openssl-devel。

    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
  • 本地下载安装包

    https://nginx.org/download/ (下载Nginx-1.9.9.tar.gz)

  • 将安装包远程传到服务器上

    scp PHP-7.0.11.tar.gz username@ip:/usr/local/Nginx-1.9.9.tar.gz

  • 解压安装包

    tar -zxvf Nginx-1.9.9.tar.gz

  • 配置/编译

    cd Nginx-1.9.9
    //注:编译 (地址可以自己定义)
    ./configure --prefix=/etc/Nginx     
    make
    make install
  • 检测安装是否成功

    cd  /etc/Nginx/sbin
    
    ./Nginx

    如果在这个环节报错:
    Nginx: [alert] Could not open error log file: open()
    "/usr/local/Nginx/logs/error.log" Failed (2: No such file or directory)
    2016/09/13 19:08:56 [emerg] 6996#0: open() "/usr/local/Nginx/logs/access.log" Failed (2: No such file or directory)

    原因分析:Nginx/目录下没有logs文件夹

    mkdir logs
    chmod 700 logs
  • 监听查询查看

    ps aux|grep Nginx

    直接输入IP地址,页面渲染为:

    【异常处理】
    如果没有上面的渲染页面,我们则需要Telnet 连接下:
    telnet Ip地址 80
    如果报连接失败,则说明服务器的80端口是打不开的。
    【解决方案】
    firewall-cmd –query-port=80/tcp

    说明80端口还真没打开呀!
    (⊙o⊙)开启80端口走起!
    firewall-cmd –add-port=80/tcp –permanent
    注: –permanent #永久生效,没有此参数重启后失效
    o( ̄ヘ ̄o#)重启防火墙
    systemctl restart firewalld

    (^o^)/~刷新浏览器!

  • 设置Nginx开机启动

    vim /etc/rc.d/rc.local   
    
    #开机启动
    
    /etc/Nginx/sbin/Nginx

    注:所有的开机启动都要在 /etc/rc.d/rc.local 中

  • 配置Nginx

    编辑Nginx配置文件/etc/Nginx/conf/Nginx.conf,主要修改Nginx的server {}配置块中的内容,修改location块,追加index.PHP让Nginx服务器默认支持index.PHP为首页:

    然后配置.PHP请求被传送到后端的PHP-fpm模块,默认情况下PHP配置块是被注释的,此时去掉注释并修改为以下内容:

    主要修改的就是fastcgi_param设置为:
    SCRIPT_FILENAME $document_root$fastcgi_script_name
    修改完这些保存并退出,然后重启Nginx:
    /etc/Nginx/sbin/Nginx -s reload

  • 检测是否配置成功

    在Nginx下的html目录下创建test.PHP文件,打印一下PHP配置:

    touch test.PHP
    vi test.PHP
    PHPinfo(); 

    访问PHP文件如果出现PHP配置,则Nginx配置成功

MysqL安装

  • 【运行环境】查看自己主机的属性(选择适合主机的MysqL包)

    more /etc/issue
  • 【安装方法】阐述

    安装MysqL主要有两种方法:

    第一种是通过源码自行编译安装,这种适合高级用户定制MysqL的特性,这里不做说明;

    第二种是通过编译过的二进制文件进行安装。

    二进制文件安装的方法又分为两种:

    一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件;

    第二种是使用RPM或其他包进行安装,这种安装进程会自动完成系统的相关配置,所以比较方便。

  • 【检查安装包】检查是否已安装

    rpm -qa | grep -i MysqL
    *注:grep的-i选项表示匹配时忽略大小写

    可见已经安装了库文件,应该先卸载,不然会出现覆盖错误。注意卸:载时使用了–nodeps选项,忽略了依赖关系:

    rpm -e MysqL-libs-5.1.73-7.el6.x86_64 --nodeps

    再次运行上面命令(rpm -qa | grep -i MysqL)的时候 将不会再显示库文件。

  • 【添加用户组】

    添加MysqL组和MysqL用户,用于设置MysqL安装目录文件所有者和所属组。

    groupadd MysqL
    useradd -r -g MysqL MysqL

    *注:useradd -r参数表示MysqL用户是系统用户,不可用于登录系统。

  • 【二进制文件安装】

    • 下载安装包
      点击下载链接地址

      下载安装包MysqL-5.7.17-linux-glibc2.5-i686.tar.gz 到本地

    • 上传到服务器

      scp MysqL-5.7.17-linux-glibc2.5-x86_64.tar.gz user@ip:/usr/local
    • 解压缩安装包

      tar -zxvf MysqL-5.7.17-linux-glibc2.5-x86_64.tar.gz
    • 更改目录名称(太长了)

      mv  MysqL-5.7.17-linux-glibc2.5-x86_64  MysqL
    • 进入MysqL文件夹,也就是MysqL所在的目录,并更改所属的组和用户。

      cd MysqL
      chown -R MysqL .
      chgrp -R MysqL .
    • 开始作死安装o( ̄ヘ ̄o#)

      执行MysqL_install_db脚本,对MysqL中的data目录进行初始化并创建一些系统表格。注意MysqL服务进程MysqLd运行时会访问data目录,所以必须由启动MysqLd进程的用户(就是我们之前设置的MysqL用户)执行这个脚本,或者用root执行,但是加上参数–user=MysqL。

      cd MysqL
      chown -R MysqL .
      chgrp -R MysqL .
    • 配置文件o( ̄√ ̄o#)

      cd support-files
      
      //复制my.cnf 到 /etc/my.cnf (MysqLd启动时自动读取) 
      cp my-default.cnf /etc/my.cnf
      
      *注意:如果你在安装时Linux虚拟机时同时安装了默认的MysqL,此时操作以上步骤,终端将会提示你文件已存在是否覆盖,输入yes覆盖即可。
      //配置数据库编码
      vi /etc/my.cnf
      //在这份文件中可以添加以下配置信息(如果有修改即可)
      [MysqL]
      default-character-set=utf8
      [MysqLd]
      default-storage-engine=INNODB
      character_set_server=utf8
      //复制MysqL.server 到/etc/init.d/ 目录下【目的想实现开机自动执行效果】
      执行命令:cp MysqL.server /etc/init.d/MysqL  (MysqL是服务名)
      //修改 /etc/init.d/MysqL 参数
      vi /etc/init.d/MysqL
      //给与2个目录位置
      basedir=/usr/local/MysqL
      datadir=/usr/local/MysqL/data
    • MysqL用户管理o( ̄ヘ ̄o#)

       passwd MysqL #给MysqL用户设置一个密码
       #给目录/usr/local/MysqL 更改拥有者  
       chown -R MysqL:MysqL /usr/local/MysqL/
    • 初始化 MysqL 的数据库o( ̄ヘ ̄o#)

      cd MysqL/bin
      //初始化
      ./MysqLd --initialize --user=MysqL --basedir=/usr/local/MysqL --datadir=/usr/local/MysqL/data

      注:
      生成出一个data目录,代表数据库已经初始化成功
      并且MysqL的root用户生成一个临时密码:SHNq8Qvd2g>L(最好先记录这个临时密码)
      记住最后的root@localhost:密码

      给数据库加密
      ./MysqL_ssl_rsa_setup --datadir=/usr/local/MysqL/data

    • 启动MysqL/检查MysqLo( ̄ヘ ̄o#)

      给数据库加密
      ./MysqL_ssl_rsa_setup –datadir=/usr/local/MysqL/data`

      启动MysqL(为了不让进程卡主,可在启动MysqL的命令后加上&代表此进程在后台运行)
      ./MysqLd_safe --user=MysqL &

      检查ps -ef | grep MysqL

    • 登录MysqL数据库咯O(∩_∩)O哈哈
      //登录
      ./MysqL -uroot -p回车后输入之前的临时密码
      //修改密码
      set password=password('新密码');

Centos 中搭建LNMP环境的更多相关文章

  1. iOS – 友好的NSDate格式

    我需要在我的应用程序中显示帖子的日期给用户,现在我用这种格式:“5月25日星期五”.如何格式化NSDate以阅读“2小时前”的内容?使其更加用户友好.解决方法NSDateFormatter不能做这样的事情;你将需要建立自己的规则.我想像:所以这是打印’x分钟前’或’x小时前’从日期起24小时,通常是一天.

  2. 从iOS应用程序发送帖子到PHP脚本不工作…简单的解决方案就像

    我之前已经做了好几次了但是由于某些原因我无法通过这个帖子…我尝试了设置为_POST且没有的变量的PHP脚本……当它们未设置为发布时它工作精细.这是我的iOS代码:这里是PHP的一大块,POST变量不在正确的位置?我想这对于更有经验的开发人员来说是一个相当简单的答案,感谢您的帮助!解决方法$_POST是一个数组,而不是一个函数.您需要使用方括号来访问数组索引:

  3. 记一次云计算测试实验-openstack-icehouse-安装swift

    -----------------------controller:---------------------------------sourceadmin-openrc.shkeystoneuser-create--name=swift--pass=000000--email=swift@localhostkeystoneuser-role-add--user=swift--tenant=ser

  4. swift学习2 元组 tuples

    swift中出现了一种新的数据结构,非常牛掰的元组tuples如果懂PHP的猿,会发现这个元组和PHP的数组非常类似,同样是可以默认不指定key,也可以指定key目前的学习疑问是,如何进行元组的遍历?

  5. 尝试使用swift mailer,gmail smtp,php发送邮件

    这里是我的代码:在运行时出现此错误…

  6. Android – 将SQLite与MySQL同步的最佳方式

    参见英文答案>Synchronizingclient-serverdatabases5个我正在开发一个包含网络应用和移动应用程序的项目,该应用程序记录每日用户的数据.用户可以删除,更新他们的数据,他们可以使用许多设备插入数据.我打算这样开发:用户输入他们的数据然后插入sqlite.服务将定期启动(每5小时或每小时)以使用时间戳与MysqL同步.我确实在互联网上使用服务和时间戳搜索了一个样本,但我一

  7. android – 模拟器中hosts文件中的Url映射被忽略

    我正在使用genymotion仿真器,并使用它从主机文件中提取adbremountadbpull/system/etc/hostsC:\Users\Rkn09\Desktop\hosts我添加了新的映射192.168.0.115xxx.mydomain.com,我把它推回到模拟器使用adbpushC:\Users\Rkn09\Desktop\hosts/system/etc/hosts但是当我向x

  8. android – 如何将唯一的GCM注册标识存储到MySQL中

    我正在设置GoogleCloudMessaging机制的服务器端,使用MySQL存储移动应用提供的注册ID.Google可以发出最多4k个注册码,我被迫将其存储在TEXT字段中.所有的好,到目前为止,问题是我必须处理这样的情况:>用户登录到应用程序>该应用从google请求注册ID>应用程序将新的注册ID发送到应用服务器>服务器存储该注册ID并将其链接到当前登录的用户>该用户注销并且新用户登录>应

  9. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  10. jQuery的Cookie封装,与PHP交互的简单实现

    下面小编就为大家带来一篇jQuery的Cookie封装,与PHP交互的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部