安装mysql
安装准备
创建mysql用户:
useradd -s /sbin/nologin mysql
建立所需目录:
mkdir -p /usr/local/mysql/data
我这里存放mysql的data文件目录 可以自定义
更改目录用户组:
chown -R mysql:mysql /usr/local/mysql/data
下载源码包:
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz
我安装的是mysql5.6版本
解压:
tar -zxvf mysql-5.6.37.tar.gz
进入解压后的目录:
cd mysql-5.6.37
执行命令:
cmake -DMYSQL_USER=mysql -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
注意空格 这里编辑器的原因显示有误,每个属性以一个空格隔开
参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DWITH_MYISAM_STORAGE_ENGINE=1 //安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 //安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 //安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 //安装blackhole存储引擎
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 //MySQL监听端口
-DMYSQL_USER=mysql //MySQL用户名
其他参数:
-DWITH-EMBEDDED_SERVER=1 //编译成embedded MySQL library (libmysqld.a)
-DSYSCONFDIR=/etc //MySQL配辑文件
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock //Unix socket 文件路径
-DWITH_READLINE=1 //快捷键功能
-DWITH_SSL=yes //SSL
-DWITH_MEMORY_STORAGE_ENGINE=1 //安装memory存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 //安装frderated存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 //安装数据库分区
-DINSTALL_PLUGINDIR=/usr/local/mysql/plugin //插件文件及配置路径
出现camke错误:
该报错原因是未安装ncurses-devel,安装
yum -y install ncurses-devel
删除CMakeCache.txt
find / -name CMakeCache.txt
rm -rf /usr/local/src/cmake-2.8.8/Tests/Complex/Cache/CMakeCache.txt
rm -rf /usr/local/src/cmake-2.8.8/Tests/ComplexOneConfig/Cache/CMakeCache.txt
rm -rf /usr/local/src/cmake-2.8.8/Tests/ComplexRelativePaths/Cache/CMakeCache.txt
rm -rf /usr/local/src/mysql-5.6.25/CMakeCache.txt
全部删除后再重新cmake,OK。
安装:
make && make install
更改目录用户组:
chown -R mysql:mysql /usr/local/mysql
设置配置文件目录:
mv /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
mv /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
修改配置文件执行权限:
chmod a+x /etc/init.d/mysqld
设置mysql开机启动:
chkconfig –level 345 mysqld on
设置环境变量:
echo export PATH=/usr/local/mysql/bin/:$PATH>> /etc/profile
使环境变量生效:
source /etc/profile
告诉mysql配置文件目录和配置文件目录路径:
/usr/local/mysql/scripts/mysql_install_db –user=mysql –defaults-file=/etc/my.cnf –basedir=/usr/local/mysql –datadir=/usr/local/mysql/data
编辑mysql配置文件:
vim /etc/my.cnf
增加以下配置:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
mysql安装完毕,可以service mysqld restart 重启mysql,再 ps aux | grep mysqld 查看mysql进程
mysql -uroot -p 默认没有密码
安装nginx+php
下载源文件 http://pan.baidu.com/s/1c19RShM
确定初始化环境
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
为了省事把所需要的库文件全都安装上,可以使用rpm包安装,也可以用yum命令安装
安装nginx需要的库文件
yum -y install pcre-devel zlib-devel
PHP依赖的库文件
yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel
安装库文件
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure –prefix=/usr/local
make && make install
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install
/sbin/ldconfig
cd libltdl
./configure - -enable-ltdl-install
make && make install
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9/
./configure
make && make install
创建软连接
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
继续安装需要的依赖文件
cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make && make install
出现configure: error: * libmcrypt was not found解决方案
export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH
建立php安装目录
mkdir -p /usr/local/php
解压
tar axvf php-5.6.31.tar.gz
cd php-5.6.31
执行命令:
export LIBS=”-lm -ltermcap -lresolv”
export DYLD_LIBRARY_PATH=”/usr/local/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64”
export LD_LIBRARY_PATH=”/usr/local/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64”
这里注意文件路径 export 和后面是一条命令
编译:
./configure –prefix=/usr/local/php –with-config-file-path=/etc –with-iconv-dir=/usr/local/ –with-freetype-dir –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-jpeg-dir –with-png-dir –with-zlib –with-mhash –enable-sockets –enable-ftp –with-libxml-dir –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-mbstring –with-mcrypt –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-ldap –with-ldap-sasl –enable-fpm –with-xmlrpc –enable-zip –enable-soap –without-pear
编译出现configure: error: Cannot find ldap libraries in /usr/lib. 错误
执行cp -frp /usr/lib64/libldap* /usr/lib/
出现 make: * [ext/fileinfo/libmagic/apprentice.lo] Error 1 表示内存不足1 G
在编译命令后 加 –disable-fileinfo 再执行编译命令
安装
make ZEND_EXTRA_LIBS=’-liconv’
make install
确定php配置文件路径
cp php.ini-production /etc/php.ini
将php-fpm 作为服务运行
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
这里的路径是解压后的php文件目录路径
cd /usr/local/php/etc
mv php-fpm.conf.default php-fpm.conf
chmod 755 /etc/init.d/php-fpm
chkconfig –add php-fpm
chkconfig –level 345 php-fpm on
服务方式启动php-fpm
service php-fpm start
如果启动失败,Starting php-fpm /usr/local/php/sbin/php-fpm: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory failed
32位系统执行:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/
64位系统执行:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
启动成功
安装nginx
创建nginx运行用户
useradd www
安装pcre
tar zxvf pcre-8.32.tar.gz
cd pcre-8.32/
./configure –prefix=/usr/local/pcre
make && make install
安装nginx
tar zxvf nginx-1.0.15.tar.gz
cd nginx-1.0.15/
编译
./configure –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module –with-http_gzip_static_module –with-ipv6 –with-http_random_index_module
安装
make && make install
nginx 加入环境变量
vi /etc/profile
在末尾加上:
#nginx configure
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:¥NGINX_HOME/sbin
注意:¥转成$ 编辑器的原因不能使用
保存退出 执行:source /etc/profile 使配置生效
nginx -v
nginx version: nginx/1.10.2
说明安装成功
将nginx 加入系统服务
vim /etc/init.d/nginx
#!/bin/sh
#
# nginx - this script starts and stops the nginx daemon
#
# chkconfig: - 85 15
# description: Nginx is an HTTP(S) server, HTTP(S) reverse \
# proxy and IMAP/POP3 proxy server
# processname: nginx
# config: /etc/nginx/nginx.conf
# config: /etc/sysconfig/nginx
# pidfile: /var/run/nginx.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ "$NETWORKING" = "no" ] && exit 0
nginx="/usr/local/nginx/sbin/nginx"
prog=$(basename $nginx)
NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
[ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
lockfile=/var/lock/subsys/nginx
start() {
[ -x $nginx ] || exit 5
[ -f $NGINX_CONF_FILE ] || exit 6
echo -n $"Starting $prog: "
daemon $nginx -c $NGINX_CONF_FILE
retval=$?
echo
[ $retval -eq 0 ] && touch $lockfile
return $retval
}
stop() {
echo -n $"Stopping $prog: "
killproc $prog -QUIT
retval=$?
echo
[ $retval -eq 0 ] && rm -f $lockfile
return $retval
killall -9 nginx
}
restart() {
configtest || return $?
stop
sleep 1
start
}
reload() {
configtest || return $?
echo -n $"Reloading $prog: "
killproc $nginx -HUP
RETVAL=$?
echo
}
force_reload() {
restart
}
configtest() {
$nginx -t -c $NGINX_CONF_FILE
}
rh_status() {
status $prog
}
rh_status_q() {
rh_status >/dev/null 2>&1
}
case "$1" in
start)
rh_status_q && exit 0
$1
;;
stop)
rh_status_q || exit 0
$1
;;
restart|configtest)
$1
;;
reload)
rh_status_q || exit 7
$1
;;
force-reload)
force_reload
;;
status)
rh_status
;;
condrestart|try-restart)
rh_status_q || exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
exit 2
esac
执行:
chmod 755 /etc/init.d/nginx
chkconfig –add nginx
nginx启动、停止、无间断服务重启
service nginx start
service nginx stop
service nginx reload