uclund 部署架设环境

cp /etc/resolv.conf /etc/resolv.conf.bak

yum update -y
yum -y install gcc gcc-c++ autoconf cmake libjpeg libg libpng-devel freetype freetype-devel libxml2 libxml2-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-deves-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-idn-devel openssl openssl-devel openldap openldap-devel nss_ldclients openldap-servers gd gd2 gd-devel gd2-devel perl-CPAN ncurses-devel bison bison-devel bzip2-devel libxslt-devel zip unzip
reboot

//网卡绑定多个内网和外网 ucloud.cn下

cd /etc/sysconfig/network-scripts

cp ifcfg-eth0 ifcfg-eth0:1

vim ifcfg-eth0

DEVICE=eth0
IPADDR=$Publick_IP
NETMASK=255.255.255.255
BOOTPROTO=none
PEERDNS=yes
USERCTL=no
NM_CONTROLLED=no
ONBOOT=yes

vim ifcfg-eth0:1 其实这部不用操作 默认就是原来的内网配置

DEVICE=eth0:1
HWADDR=原配置中的mac地址
IPADDR=原配置的内网ip地址
NETMASK=255.255.0.0
BOOTPROTO=none
PEERDNS=yes
USERCTL=no
NM_CONTROLLED=no
ONBOOT=yes
DNS1=原配置
DNS2=原配置
DNS3=原配置

vim route-eth0

10.0.0.0/8 via 10.9.0.1
default via 10.9.0.1 src $Public_IP

service network restart

vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

添加iptables规则:

iptables -t nat -A PREROUTING ! -s 10.0.0.0/8 -d 内网ip/32 -j DNAT --to-destination $Publick_IP

iptables -t nat -A POSTROUTING -s 外网IP/32 -j SNAT --to-source 内网ip

umount /dev/vdb
fdisk -l
fdisk /dev/vdb
n
p
1
[enter]
[enter]
w

去掉vdb1的自动加载

vim /etc/fstab
mkdir /web
mkfs.ext3 /dev/vdb1
vim /etc/fstab

/dev/vdb1    /web    ext3    defaults     0 0

mount -a

安装mysql-5.6.26

创建MysqL用户和组
groupadd MysqL
useradd -g MysqL -s /usr/sbin/nologin MysqL
mkdir -p /web/MysqL/data
mkdir -p /web/MysqL/logs
mkdir -p /usr/local/MysqL
chown -R MysqL:MysqL /usr/local/MysqL
chown -R MysqL:MysqL /web/MysqL

编译安装MysqL
tar zxvf mysql-5.6.26.tar.gz
cd mysql-5.6.26

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/MysqL \
-DMysqL_DATADIR=/web/MysqL/data \
-DSYSconfdIR=/etc \
-DMysqL_UNIX_ADDR=/tmp/MysqL.sock \
-DMysqL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1-DWITH_SSL=system \
-DWITH_EMbedDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0

make && make install

============可能遇到的编译错误===========
出现函数gets错误的
解决办法:
rm -f CMakeCache.txt

yum -y install ncurses-devel

修改配置文件
cp./support-files/my-medium.cnf/etc/my.cnf
vi/etc/my.cnf

输入以下内容(可以先清空默认内容):

[MysqLd]
datadir=/web/MysqL/data
socket=/tmp/MysqL.sock
user=MysqL
symbolic-links=0
[MysqLd_safe]
log-error=/web/MysqL/logs/MysqLd.log
pid-file=/web/MysqL/MysqLd.pid
user=MysqL
tmpdir=/tmp

or
cp /web/lanmp/my.cnf /etc/my.cnf

初始化数据库
/usr/local/MysqL/scripts/MysqL_install_db \
--user=MysqL \
--basedir=/usr/local/MysqL \
--datadir=/web/MysqL/data

配置开机自启动
cp ./support-files/MysqL.server /etc/init.d/MysqLd
chmod +x /etc/init.d/MysqLd
chkconfig --add MysqLd
chkconfig MysqLd on

添加MysqL的软链接以适应init脚本
ln -sv /usr/local/MysqL/bin/MysqL /usr/sbin/MysqL
ln -sv /usr/local/MysqL/bin/MysqLadmin /usr/sbin/MysqLadmin
ln -sv /usr/local/MysqL/bin/MysqLdump /usr/sbin/MysqLdump

启动MysqL
service MysqLd start#或/etc/init.d/MysqLdstart

修改root密码:

MysqLadmin -uroot password '新密码'

MysqL -uroot -p
输入新密码
create user 'duigou'@'%' identified by '密码'
create user 'duigou'@'localhost' identified by '密码'
create database duigou default character set utf8mb4 collate utf8mb4_general_ci;
grant all privileges on duigou.* to 'duigou'@'%' identified by '密码';
grant all privileges on duigou.* to 'duigou'@'localhost' identified by '密码';

======================================================================================
或者重新配置一个超级管理员并删除root
GRANTALLPRIVILEGESON.TO'admin'@'localhost'IDENTIFIEDBY'12345678';
GRANTALLPRIVILEGESON.TO'admin'@'127.0.0.1'IDENTIFIEDBY'12345678';

DELETEFROMuserWHEREuser!='admin';#删除原先默认的用户,仅保留新建的admin用户

第三步:安装Nginx-1.8.0

添加www用户和组、创建网站虚拟目录
groupadd www
useradd -g www -s /usr/sbin/nologin www
mkdir -p /web/htdocs/www
chmod +w /web/htdocs/www
chown -R www:www /web/htdocs/www
mkdir -p /web/htdocs/logs
chmod +w /web/htdocs/logs
chown -R www:www /web/htdocs/logs

安装Nginx所需的pcre库
tar zxvf pcre-8.37.tar.gz
cd pcre-8.37
./configure
make && make install
ln -s /usr/local/lib/libpcre.so.1 /usr/lib64/libpcre.so.1
cd ..

安装Nginx-1.8.0
tar zxvf Nginx-1.8.0.tar.gz
cd Nginx-1.8.0
./configure \
--user=www \
--group=www \
--prefix=/usr/local/Nginx \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_realip_module \
--with-http_image_filter_module

make && make install

创建Nginx配置文件和创建fcgi.conf文件
cp -f /web/lanmp/Nginx.conf.uclound /usr/local/Nginx/conf/Nginx.conf
cp -f /web/lanmp/fastcgi.conf /usr/local/Nginx/conf/fastcgi.conf

启动Nginx
ulimit -SHn 65535
/usr/local/Nginx/sbin/Nginx 直接启动

配置开机自启动
cp /web/lanmp/initd/Nginx /etc/init.d/Nginx
chmod +x /etc/init.d/Nginx
chkconfig Nginx on
service Nginx start|stop|restart|reload

第四步:安装PHP5.5.13

cd ..
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local
make && make install

=====================================================================
编译libiconv解决./stdio.h:1010:1: 错误: ‘gets’未声明(不在函数内)
cd srclib/
sed -i -e '/gets is a security/d' ./stdio.in.h
cd ../
make

make install

cd ..
tar zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7/
./configure
make && make install
/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
make && make install

cd ..
cd ..
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/lib64/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib64/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib64/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib64/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib64/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib64/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib64/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib64/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib64/libmhash.so.2.0.1
ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
ln -s /usr/local/MysqL/lib/libMysqLclient.so.18 /usr/lib64/libMysqLclient.so.18

cd ..
tar zxvf mcrypt-2.6.8.tar.gz
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:
cd ..
tar zxvf PHP-5.6.11.tar.gz
cd PHP-5.6.11

./configure \
--prefix=/usr/local/PHP \
--with-config-file-path=/usr/local/PHP/etc \
--with-MysqL=/usr/local/MysqL \
--with-MysqLi=/usr/local/MysqL/bin/MysqL_config \
--enable-fpm \
--enable-calendar \
--enable-dba \
--enable-wddx \
--enable-opcache \
--with-fpm-user=PHP-fpm \
--with-fpm-group=PHP-fpm \
--with-MysqL=MysqLnd \
--with-MysqL-sock=/tmp/MysqL.sock \
--with-libxml-dir=/usr \
--with-xsl \
--with-gd \
--with-bz2 \
--with-kerberos \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-freetype-dir \
--with-iconv-dir \
--with-zlib-dir \
--with-mcrypt \
--enable-soap \
--enable-gd-native-ttf \
--enable-ftp \
--enable-sockets \
--enable-zip \
--enable-posix \
--enable-pcntl \
--enable-mbstring \
--enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf \
--with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap \
--enable-mbregex \
--enable-sysvsem \
--enable-sockets \
--enable-shmop \
--enable-bcmath \
--enable-xml \
--enable-exif \
--disable-ipv6 \
--with-pear \
--with-curl \
--with-openssl \
--with-pdo-MysqL \

--enable-magic-quotes \
--disable-fileinfo \

注:如果内存较大 可以去掉--disable-fileinfo

======================================================
configure: error: Please reinstall the BZip2 distribution
yum install bzip2-devel.x86_64 -y

error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

yum install libxslt-devel -y

make ZEND_EXTRA_LIBS='-liconv'

make
如果直接make出错make: * [sapi/cli/PHP] Error 1

make ZEND_EXTRA_LIBS='-liconv'

make install

PHP.ini设置

cp /web/lanmp/PHP.ini /usr/local/PHP/etc/PHP.ini
cp /web/lanmp/PHP-fpm.conf /usr/local/PHP/etc/PHP-fpm.conf

fpm加入自启动
cp /web/lanmp/initd/PHP-fpm /etc/init.d/PHP-fpm
chmod +x /etc/init.d/PHP-fpm
chkconfig PHP-fpm on
service PHP-fpm start|stop|restart|reload

vi /etc/rc.local

输入

ulimit -SHn 65535

以上简单部署 下面是增加部分的扩展和优化

编译PHP扩展模块memcache、pdo_MysqL、imagick
tar zxvf memcache-3.0.8.tgz
cd memcache-3.0.8
/usr/local/PHP/bin/PHPize
./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config
出错出现configure: error: MysqL_query missing!? 解决方法 ./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config --with-pdo-MysqL=/usr/local/MysqL
make出错
make && make install
cd ../

tar zxvf PDO_MysqL-1.0.2.tgz
cd PDO_MysqL-1.0.2/
/usr/local/PHP/bin/PHPize
./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config --with-pdo-MysqL=/usr/local/MysqL
ln -s /usr/local/MysqL/include/* /usr/local/include/
make
make install
cd ../

tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.1-2/
./configure
make
make install
cd ../

tar zxvf imagick-3.2.0RC1.tgz
cd imagick-3.2.0RC1
/usr/local/PHP/bin/PHPize
export PKG_CONfig_PATH=/usr/local/lib/pkgconfig
./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config
make
make install
cd ../

修改PHP.ini配置文件
vi /usr/local/PHP/etc/PHP.ini

查找; extension_dir = "/" 将前面的;去掉并修改为

extension_dir = "/usr/local/PHP/lib/PHP/extensions/no-debug-non-zts-20121212/"

并加入

extension=memcache.so
extension=pdo_MysqL.so
extension=imagick.so

执行下面的命令使配置文件立即生效:
kill -USR2 cat /usr/local/PHP/var/run/PHP-fpm.pid

其他(可选):

优化linux内核参数

vi /etc/sysctl.conf

在末尾增加以下内容:

Add

net.ipv4.tcp_max_syn_backlog = 65536
net.core.netdev_max_backlog = 32768
net.core.somaxconn = 32768

net.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216

net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 2

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_tw_len = 1

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_mem = 94500000 915000000 927000000
net.ipv4.tcp_max_orphans = 3276800

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 120

net.ipv4.ip_local_port_range = 1024 65535

使配置立即生效:
/sbin/sysctl -p

安装opcache(因为PHP 5.5已经集成Zend Opcache,可以替代eaccelerator)
tar zxvf zendopcache-7.0.3.tgz
cd zendopcache-7.0.3
/usr/local/PHP/bin/PHPize
./configure --with-PHP-config=/usr/local/PHP/bin/PHP-config
make
make install
cd ../

在PHP.ini中加入下面配置:

[opcache]
zend_extension="/usr/local/PHP/lib/PHP/extensions/no-debug-non-zts-20121212/opcache.so"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
?
1
2 # 使PHP.ini配置文件立即生效
kill -USR2 cat /usr/local/PHP/var/run/PHP-fpm.pid

常用命令:

修改完PHP.ini后执行:

kill -USR2 cat /usr/local/PHP/var/run/PHP-fpm.pid

修改完Nginx.conf后执行

/usr/local/Nginx/sbin/Nginx -s reload

重启MysqL服务执行:

service MysqLd (start|stop|restart)

centos下编译lnmp环境的更多相关文章

  1. ios中的.dylib和.a lib有什么区别?

    我知道Objectivec中的编译和运行时是什么,但是我想知道是什么画了这两个库之间的界限?他们的目的是什么,除了陈述一个是静态的而另一个是动态的?我们何时需要一个而不是另一个?

  2. xamarin.ios – ShareKit与MonoTouch如何?

    有人可以验证ShareKit实际上是否可用于MonoTouch并指导我完成使其工作所需的步骤?解决方法您首先从getsharekit.com下载还是使用ShareKit2.0?

  3. ios – iPhone崩溃日志不能正确地符号化并且是双重间隔的

    任何建议超过欢迎.谢谢.解决方法当这件事发生在我身上时,它只是我通过电子邮件收到的日志.如果我记得,至少有一些是在.msg文件中,我不得不把它们拿出来.它可能是Exchange编码更改.如果你显示不可见的字符,你可能会看到每个字符之间的东西.您可以找到并替换它们以删除它们或更改编辑器中的编码.

  4. ios – Xcode 7 beta 2:LaunchScreen.storyboard无法打开文档

    我在两个不同的Mac(iMac和MacBookpro)上收到这个错误.不知道为什么人们不能再现它,但我需要一些帮助.在运行XX优胜美地10.10.4的Mac上运行Xcode7beta2(15六月’15).甚至无法编译和运行我的项目..我从创建菜单创建了一个视图应用程序项目,就是这样.编辑:我试图删除并重新添加storyboard文件(也可以打开Main.storyboard插件),我仍然得到相同的

  5. ios – 为具有多个目标和不同平台的项目编写Podfile

    如何让CocoaPods成功整合到我的项目和iOS/Mac目标?我已经阅读了Podfile文档,但发现它在这方面缺乏.解决方法得到它了!从我的每个目标和运行的pod安装中删除libPods-xxxx.a文件,再次执行了我的目标集成.

  6. ios – 在/usr/lib/system/libcache.dylib中,缺少必需的架构armv6

    在试图为iphoneos编写一个虚拟程序时,Xcode4,gcc似乎没有超出初始的sysroot目录如果我把sysroot,以下作品,但感觉非常干酪,而且不可伸缩.这里发生了什么?

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

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

  8. iOS中的CocoaPods是什么?

    任何人都可以详细说明iOS开发中的CocoaPods.我似乎无法理解它们是什么.提前致谢.解决方法CocoaPods是我在最近的iOS应用程序开发中发现的最好的东西之一.我用它来获取最新的Github开源项目作为框架和lib到我的项目中.最好的部分是它将自动管理依赖lib,因此无需拖放文件并下载文件夹blaablaaa只需一个简单的代码’podinstall即可!

  9. swift学习2 元组 tuples

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

  10. Swift 2/iOS 9 – libz.dylib找不到

    我在我的新的Swift2.0项目中使用一些来自google的外部代码,在早期版本中需要“libz.dylib”。更新到新的XCode/新的SDK后。

随机推荐

  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架构–可能与问题有关!

返回
顶部