linux下 php+nginx+mysql安装配置

我主要是用来安装php,以及nginx和php的交互原文:http://www.cnblogs.com/lost-1987/articles/2642979.html

一 安装插件

可以选择YUM安装或者源码编译安装
gcc
gcc-c++
zlib
pcre
pcre-devel
libevent
libevent-devel
libxml2
libxml2-devel
libmcrypt
libmcrypt-devel
curl-devel
libpng-devel
libtool-ltdl-devel
gd-devel
openssl
openssl-devel
ncurses-devel
cmake
mysql-devel

二 安装mysql

tar -zxvf mysql-5.5.25.tar.gz
将mysql包解压 然后放入你想要mysql的安装位置 如本例中的/usr/local/webserver/mysql cmake命令需要这个路径

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_DATADIR=/user/local/webserver/mysql/data -DSYSCONFDIR=/etc -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_TCP_PORT=3306 -DWITH_DEBUG=0 -DENABLED_LOCAL_INFILE=1
回车执行,执行完成后继续执行 make && make install

#设置Mysql
#在support-files目录中有五个配置信息文件(这里很重要,一定要根据自己的内存复制对应的cnf文件,否则mysql始终起不来):
#my-small.cnf (内存<=64M)
#my-medium.cnf (内存 128M)
#my-large.cnf (内存 512M)
#my-huge.cnf (内存 1G-2G)
#my-innodb-heavy-4G.cnf (内存 4GB)
cd /usr/local/webserver/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf
vi /etc/my.cnf
#在 [mysqld] 段增加
datadir =  /usr/local/webserver/mysql/data
wait-timeout = 30
max_connections = 512
default-storage-engine = MyISAM
#在 [mysqld] 段修改
max_allowed_packet = 16M 

//添加mysql运行的用户和用户组
groupadd mysql
useradd -g mysql mysql -s /bin/false -d /home/mysql  //没有shell,不可本机登陆(安全起见)

cd /usr/local/webserver/mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .

//生成新的mysql授权表
//进入mysql安装目录下的脚本目录
cd /usr/local/webserver/mysql/scripts
//利用mysql_install_db脚本生成新的mysql授权表
./mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/usr/local/webserver/mysql/data --user=mysql

//mysql server在系统中的服务项设置
//复制服务文件并修改
cd /usr/local/webserver/mysql/support-files
cp mysql.server mysqld
//修改mysqld
basedir=/usr/local/webserver/mysql
datadir=/usr/local/webserver/mysql/data

mv mysqld /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
进行上述操作后 我们可以用 service mysqld start 来启动mysql服务了

//设置软连接使mysql,  mysqldump,  mysqladmin这三个bin命令能在shell中直接运行
sudo ln -s /usr/local/webserver/mysql/bin/mysql /usr/bin
sudo ln -s /usr/local/webserver/mysql/bin/mysqldump /usr/bin
sudo ln -s /usr/local/webserver/mysql/bin/mysqladmin /usr/bin

rm -rf /etc/mysql/my.cnf 因为已经把此文件复制到/etc/my.cnf  如果不删除的话,mysql启动不起来。

/etc/init.d/mysqld start

//设置root密码
mysqladmin -u root password "admin"

//mysql数据库中文乱码解决
vi /etc/my.cnf
//然后在[mysqld]配置选项下添加
character-set-server=utf8

//然后进入mysql
cd /usr/local/webserver/mysql/bin
mysql -u root -p
提示输入密码
mysql> show variables like ‘%character%‘;

三 安装Nginx

#tar zxvf nginx-0.8.24.tar.gz
#cd nginx-0.8.24
#./configure --prefix=/usr/local/nginx      //此处在本环节只需指定一个路径
#make && make install
#/usr/local/nginx/sbin/nginx       //启Nginx

编写服务脚本(服务脚本请勿复制 请在linux下写入 不然回车换行符会引起异常)
vi /etc/init.d/nginx

把下列内容写入文件并保存
#!/bin/bash
# nginx Startup script for the Nginx HTTP Server
# this script create it by gcec at 2009.10.22.
# it is v.0.0.1 version.
# if you find any errors on this scripts,please contact gcec cyz.
# and send mail to support at gcec dot cc.
#
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it‘s not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx  #这里设置为你安装nginx的执行文件位置
nginx_config=/usr/local/nginx/conf/nginx.conf  #这里设置为你nginx的配置文件位置
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL

保存之后 赋予文件权限
chmod 755 /etc/init.d/nginx 

我们就可以通过service nginx start 来启动服务了

四 安装php

create user and group for fpm(fastcgi process manager)
groupadd fpm
useradd --shell /sbin/nologin -g fpm fpm

download, configure and install php5.3.3
wget http://www.php.net/distributions/php-5.3.3.tar.gz
tar zxvf php-5.3.3.tar.gz
cd php-5.3.3
[直接复制]
./configure  --prefix=/usr/local/php  --enable-fpm  --with-fpm-user=fpm  --with-fpm-group=fpm --with-config-file-path=/usr/local/php/lib --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --without-pdo-sqlite --without-sqlite3 --without-sqlite --with-curl --enable-mbstring --with-mhash --with-mcrypt --with-openssl --with-gd --enable-sockets --with-gettext --with-zlib --enable-zip --enable-soap --with-xmlrpc --with-freetype-dir=/usr/local/freetype --enable-gd-native-ttf
--disable-fileinfo
中途错误需要yum install几个依赖包

[手敲版]
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=fpm --with-fpm-group=fpm --with-config-file-path=/usr/local/php/lib     #这里是配置放php.ini的存放位置
--with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --without-pdo-sqlite --without-sqlite3 --without-sqlite --with-mysql-sock=/tmp/mysql.sock --with-curl --enable-mbstring --with-mhash --with-mcrypt --with-openssl --with-gd --enable-sockets --with-gettext --with-zlib --enable-zip --enable-soap --with-xmlrpc --with-freetype-dir=/usr/local/freetype --enable-gd-native-ttf --with-jpeg-dir=/usr/lib64       #64位系统lib64 32位系统lib32 

make && make install
 make出现错误virtual memory exhausted: Cannot allocate memory,在configure上加上–disable-fileinfo 
如果出现mysql_config not found的错误
解决办法: vi /etc/profile 在最后加入一行 export PATH="$PATH:/usr/local/mysql/bin" 这个是你的mysql安装到的目录

 五 配置php

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
复制源码包里的php.ini-development到/usr/local/php/lib

vi php-fpm.conf
找到"listen="  修改为 listen = /dev/shm/php-fpm.sock (要求php版本5.3以上 该方式为使用sock文件监听)

cp /backup/php-5.3.3/php.ini-development /usr/local/php/lib/php.ini
启动php
/usr/local/php/sbin/php-fpm

如果设置路径正确,php.ini文件也存在,还无法加载php.ini的话 修改启动命令 /usr/local/php/sbin/php-fpm -c /etc/php.ini

编写服务脚本(服务脚本请勿复制 请在linux下写入 不然回车换行符会引起异常)
touch /etc/init.d/phpfpm
vim /etc/init.d/phpfpm

内容如下:

#!/bin/bash

start() {

/usr/local/php/sbin/php-fpm

/bin/echo ‘starting php listener ---[ok]‘

}

stop() {

/usr/bin/pkill php-fpm

/bin/echo ‘stopping php listener ---[ok]‘

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

*)

echo ‘usage:start/stop/restart‘

exit 0

;;

esac

保存退出

然后 就能通过 service phpfpm start/stop/restart 来启动监听

 六 配置Nginx

cat /usr/local/php/etc/php-fpm.conf
查看端口 为 127.0.0.1:9000
修改nginx配置文件 /usr/local/nginx/conf/nginx.conf

# location / {    //一定要注掉这部分,否则会不解析PHP文件,而会下载 了
#    root   html; 
#    index  index.html index.htm; 
#} 

location ~ \.php {

  root              www;          #这是你网站的根目录

  fastcgi_pass  127.0.0.1:9000;            #这里指定了fastcgi进程侦听的端口,nginx就是通过这里与php交互的
       #fastcgi_pass      unix:/dev/shm/php-fpm.sock;
  fastcgi_index  index.php;   fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
   #因为SCRIPT_FILENAME在配置中是写死的并没有随着$doucument_root变化而变化,我们可以修改SCRIPT_FILENAME配置如下
   #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include           fastcgi_params;        

}
重启nginx服务
/usr/local/nginx/sbin/nginx -s reload
在/usr/local/nginx下创建www目录
mkdir www
新建一个index.php文件
cd www
vim index.php
写入<?php echo phpinfo();?>

访问服务器 如果起作用就说明配置成功

七 设置php nginx mysql 自启动

我想在centos里不启用图形界面
那么选择系统运行级别为2或者3的 推荐3
在配置之前 我们先检查下 /etc/init.d中有没有我们mysql,php,nginx的服务脚本 如果没有的话 先配置再做下列操作

如以上 mysqld , nginx, phpfpm 这3个脚本都编写好 并且放入/etc/init.d下的话 我们来配置一下自启动
我想通过一个服务来启动这3个服务那么再写一个脚本就可以了

注意:system类型的服务都可以用service来启动,用chkconfig来add 和del

但是有些自己配置的服务在用chkconfig来配置到时候会提示: “service XX does not support chkconfig”

这一般都是script不符合格式造成的,解决如下,

在script开始加入两行内容即可:

# chkconfig: - 85 15

# description: this is a World Wide Web server.

mv /etc/init.d/mysqld /etc/init.d/webapp-mysqld
mv /etc/init.d/nginx /etc/init.d/webapp-nginx
mv /etc/init.d/phpfpm /etc/init.d/webapp-phpfpm
touch /etc/init.d/webapp
vim /etc/init.d/webapp

写入以下脚本

#!/bin/bash

# chkconfig: - 85 15

# description: this is a World Wide Web server.

ACTION=$1

if [ "$ACTION" = "" ] || [ "$ACTION" = "start" ];then

#start php listeners

/sbin/service webapp-phpfpm start

#start nginx service

/sbin/service webapp-nginx start

#start mysql service

/sbin/service webapp-mysqld start

echo "web applications[mysql,nginx,php] is running now !"

elif [ "$ACTION" = "stop" ];then

/sbin/service webapp-phpfpm stop

/sbin/service webapp-nginx stop

/sbin/service webapp-mysqld stop

echo ‘web application stopped‘

else

echo "use start or stop or none after your service command"

fi

添加系统服务开机启动

chkconfig --add webapp(注意在/etc/init.d下的服务脚本必须加入#chkconfig 和 #description的内容才能够在这里支持chkconfig命令,以上已经提到过)

chkconfig --level 3 webapp on

这样我们的lamp的架构就配置成功了

说明:

语法为:

chkconfig --list [name] 用来列表服务

chkconfig --add name 用来添加服务

chkconfig --del name 用来删除服务

chkconfig [--level levels] name 改变启动信息以及检查特定服务的启动状态。

on 和 off 分别指服务在改变运行级时的启动和停止。reset 指初始化服务信息。

对于 on 和 off 开关,系统默认只对运行级 3,4, 5有效,但是 reset 可以对所有运行级有效。

时间: 2024-12-15 07:15:04

linux下 php+nginx+mysql安装配置的相关文章

Linux下通用二进制MySQL安装

(本文转载自 http://superve.leanote.com/post/Untitled-560d35b538f4117cf700031d) Linux下通用二进制MySQL安装 下载通用二进制包 > cd /usr/local/src > wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.44-linux2.6-i686.tar.gz 将源码解压至 /usr/local/ 目录下 > tar -zxvf mysql-5.

linux下搭建nginx+mysql+apache

对于开发人员来说,进行Web开发时可以用Apache进行网站测试,然而当一个Web程序进行发布时,Apache中并发性能差就显得很突出,这时配置一台Nginx服务器显得尤为重要. 以下是配置Nginx服务器的方法: 1.下载Xshell和Xftp用于管理Linux系统和上传文件 2.下载aliyun一键web安装包(包含Nginx.PHP.Mysql)  点此下载 3.将aliyun一键安装包上传到root目录下 4.执行命令:cd /root 进入root目录 5.执行命令:ls –l查看目录

linux下xampp集成包安装配置方法

1.查看你linux系统的位数,是32位的还是64位的.使用uname -a命令查看. 显示有 x86_64则说明你是64位内核, 跑的是64位的系统. i386, i686说明你是32位的内核, 跑的是32位的系统 2.首先下载xampp的安装包.打开网址:https://www.apachefriends.org/zh_cn/download.html或http://sourceforge.net/projects/xampp/files/XAMPP%20Linux/1.8.3/,选择你需要

Linux 下DHCP服务器rpm安装配置及其测试

一.了解DHCP DHCP服务提供动态指定IP地址和配置参数的机制.有动态和静态两种方式. 二.rpm安装 因为配过Samba,所以感觉挺简单. 首先找到主程序和几个附属程序的rpm的安装包.应该都是在media的DVD的Server包里的.用find找到文件位置然后rpm -ivh安装就可以了.[好像不能直接命令进入DVD...于是选择窗口进入...]安装完之后,rpm -qa|grep dhcp可以查看是否安装成功. 三.配置 主配置文件是/etc目录下的dhcpd.conf文件,但是这个文

Python 虚拟环境 | Mac/Linux下如何避坑安装配置Virtualenv

1.为什么要使用虚拟环境 在Python中,不同的应用可能需要用到不同版本的第三方包,而这些第三方包被统一存放到目录site-packages中,不同版本的包容易相互覆盖,如安装Django 2.1时,把Django 1.8 覆盖掉.导致使用Django 1.8的应用可能出现问题.因此需要使用虚拟环境,隔离出不同的'空间':让每个应用拥有各自独立的环境来使用各自不同的第三方包. 而使用Virtualenv就可以为应用创建虚拟环境. 2.安装和配置Virtualenv 操作系统:Mac/Linux

阿里云 linux下已有mysql安装phpmyadmin php apache2

之前一直用的Xftp4和Xshell5管理服务器,每次要对数据库就行修改,都得从命令行,非常不方便,因为对mysql命令行不是很熟悉. 最近想到用界面来管理mysql,因此就安装了phpmyadmin 之前的服务器上只有mysql 和 tomcat 首先安装Apacache2 搜索httpd-2.4.12.tar.gz,下载后用xftp上传到/usr/local/src目录下 cd /usr/local/src tar xvfz httpd-2.4.2-deps.tar.gz cd srclib

Linux下l2tp客户端xl2tpd安装配置的具体操作

服务器环境:Centos 5.8 64位 1.下载xl2tp http://pkgs.org/search/?query=xl2tp&type=smart选择相应的版本进行下载 2.安装ppp和xl2tp yum install ppp yum install xl2tpd 3. 配置xl2tpd.conf 文件地址: /etc/xl2tpd/xl2tpd.conf 为了保险,在修改配置文件前先备份原有文件,原始的xl2tpd.conf里面有[lns default],这个好像是用来将xl2tp

超简单的linux下virtualbox4.3.26安装配置黑苹果 OSX 10.9的办法

为了在虚拟机上装个osx,前前后后折腾了7天,终于搞定了. 发现虚拟机装osx有个最大的好处是,可以直接下载别人现成的虚拟机镜像,我就是在屡屡失败后,下载了个vdi镜像了事,虽然比较偷懒,但对于没时间折腾的我来说这种方式是最合适不过的. 需要说明的是省去了安装步骤,还是需要做一些配置的,不然只能进入安全模式,正常模式启动不了. 镜像地址是 10.9 镜像百度云盘下载地址 这个登录密码是 250530692 10.10 镜像百度云盘下载地址 这个没试过,密码不详 俩镜像都不是我装的,我只试了10.

LINUX下Apache PHP MySQL的配置与使用

安装环境: Deepin:2014.3桌面版 使用LAMP集成包安装,安装命令:sudo apt-get install lamp^ 安装包安装的是apache2+PHP5+MySQL5 如需安装phpMyAdmin,使用命令 sudo apt-get install phpmyadmin 1.关于apache的安装目录 参考连接:http://blog.csdn.net/yusiguyuan/article/details/9566437 2.关于apache的配置问题 2.1:修改监听端口