- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Linux 环境搭建推荐教程(php运行环境)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、系统约定 。
软件源代码包存放位置:/usr/local/src 。
源码包编译安装位置(prefix):/usr/local/software_name 。
脚本以及维护程序存放位置:/usr/local/sbin 。
MySQL 数据库位置:/var/lib/MySQL(可按情况设置) 。
Apache 网站根目录:/home/www/wwwroot(可按情况设置) 。
Apache 虚拟主机日志根目录:/home/www/logs(可按情况设置) 。
Apache 运行账户:www:www 。
2、系统环境部署及调整 。
1. 检查系统是否正常 。
# more /var/log/messages(检查有无系统级错误信息) 。
# dmesg(检查硬件设备是否有错误信息) 。
# ifconfig(检查网卡设置是否正确) 。
# ping www.163.com(检查网络是否正常) 。
2. 关闭不需要的服务 。
# ntsysv 。
以下仅列出需要启动的服务,未列出的服务一律推荐关闭:
atd 。
crond 。
irqbalance 。
microcode_ctl 。
network 。
sendmail 。
sshd 。
syslog 。
3. 重新启动系统 。
# init 6 。
4. 配置 vim 。
# vi /root/.bashrc 。
在 alias mv='mv -i' 下面添加一行:alias vi='vim' 保存退出.
# echo 'syntax on' > /root/.vimrc 。
5. 使用 yum 程序安装所需开发包(以下为标准的 RPM 包名称) 。
# yum install ntp vim-enhanced gcc gcc-c++ gcc-g77 flex bison autoconf automake bzip2-devel ncurses-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel pam-devel kernel 。
6. 定时校正服务器时钟,定时与中国国家授时中心授时服务器同步 。
# crontab -e 。
加入一行:
*/30 * * * * ntpdate 210.72.145.44 。
7. 源码编译安装所需包 (Source) 。
(1) GD2 。
# cd /usr/local/src 。
# tar xzvf gd-2.0.34.tar.gz 。
# cd gd-2.0.34 。
# ./configure --prefix=/usr/local/gd2 。
# make 。
# make install 。
(2) LibXML2 。
# cd /usr/local/src 。
# tar xjvf libxml2-2.6.30.tar.bz2 。
# cd libxml2-2.6.30 。
# ./configure --prefix=/usr/local/libxml2 。
# make 。
# make install 。
(3) LibMcrypt 。
# cd /usr/local/src 。
# tar xjvf libmcrypt-2.5.8.tar.bz2 。
# cd libmcrypt-2.5.8 。
# ./configure –prefix=/usr/local/libmcrypt 。
# make 。
# make install 。
(4) Apache日志截断程序 。
# cd /usr/local/src 。
# tar xzvf cronolog-1.7.0-beta.tar.gz 。
# cd cronolog-1.7.0-beta 。
# ./configure –prefix=/usr/local/cronolog 。
# make 。
# make install 。
8. 升级OpenSSL和OpenSSH 。
# cd /usr/local/src 。
# tar xzvf openssl-0.9.8e.tar.gz 。
# cd openssl-0.9.8e 。
# ./config --prefix=/usr/local/openssl 。
# make 。
# make test 。
# make install 。
# cd .. 。
# tar xzvf openssh-4.7p1.tar.gz 。
# cd openssh-4.7p1 。
# ./configure \ 。
"--prefix=/usr" \ 。
"--with-pam" \ 。
"--with-zlib" \ 。
"--sysconfdir=/etc/ssh" \ 。
"--with-ssl-dir=/usr/local/openssl" \ 。
"--with-md5-passwords" 。
# make 。
# make install 。
(1)禁用 SSH V1 协议 。
找到:
#Protocol 2,1 。
改为:
Protocol 2 。
(2)禁止root直接登录 。
此处先建立一个普通系统用户:
# useradd username 。
# passwd username 。
找到:
#PermitRootLogin yes 。
改为:
PermitRootLogin no 。
(3)禁用服务器端GSSAPI 。
找到以下两行,并将它们注释:
GSSAPIAuthentication yes 。
GSSAPICleanupCredentials yes 。
(4)禁用 DNS 名称解析 。
找到:
#UseDNS yes 。
改为:
UseDNS no 。
(5)禁用客户端 GSSAPI 。
# vi /etc/ssh/ssh_config 。
找到:
GSSAPIAuthentication yes 。
将这行注释掉.
最后,确认修改正确后重新启动 SSH 服务 。
# service sshd restart 。
# ssh -v 。
确认 OpenSSH 以及 OpenSSL 版本正确.
3、编译安装L.A.M.P环境 。
1. 下载软件 。
# cd /usr/local/src 。
httpd-2.2.6.tar.bz2 。
MySQL-5.0.45-linux-i686-glibc23.tar.gz 。
php-5.2.4.tar.bz2 。
ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz 。
2. 安装MySQL 。
# tar xzvf MySQL-5.0.45-linux-i686-glibc23.tar.gz 。
# mv MySQL-5.0.45-linux-i686-glibc23 /usr/local/ 。
# ln -s /usr/local/ MySQL-5.0.45-linux-i686-glibc23 /usr/local/MySQL 。
# useradd MySQL 。
# chown -R MySQL:root /usr/local/MySQL/ 。
# cd /usr/local/MySQL 。
# ./scripts/MySQL_install_db --user=MySQL 。
# cp ./support-files/MySQL.server /etc/rc.d/init.d/MySQLd 。
# chown root:root /etc/rc.d/init.d/MySQLd 。
# chmod 755 /etc/rc.d/init.d/MySQLd 。
# chkconfig --add MySQLd 。
# chkconfig --level 3 5 MySQLd on 。
# cp ./support-files/my-huge.cnf /etc/my.cnf 。
# mv /usr/local/MySQL/data /var/lib/MySQL 。
# chown -R MySQL:MySQL /var/lib/MySQL/ 。
# vi /etc/my.cnf 。
修改以下内容:
(1) 在 [MySQL] 段增加一行:
default-character-set = GBK | latin1 | utf8 | BIG5 。
(2) 在 [MySQLd] 段增加或修改:
datadir = /var/lib/MySQL 。
--skip-innodb 。
default-character-set = GBK | latin1 | utf8 | BIG5 。
--wait-timeout = 3 | 5 | 10 。
max_connections = 256 | 384 | 512 。
max_connect_errors = 10000000 。
thread_concurrency = CPU个数×2 。
将 log-bin 注释 。
# bin/MySQLadmin -u root password 'password_for_root' 。
3. 编译安装Apache 。
# cd /usr/local/src 。
# tar xjvf httpd-2.2.6.tar.bz2 。
# cd httpd-2.2.6 。
# ./configure \ 。
"--prefix=/usr/local/apache2" \ 。
"--with-included-apr" \ 。
"--enable-so" \ 。
"--enable-deflate=shared" \ 。
"--enable-expires=shared" \ 。
"--enable-rewrite=shared" \ 。
"--enable-static-support" \ 。
"--disable-userdir" 。
# make 。
# make install 。
# echo '/usr/local/apache2/bin/apachectl start ' >> /etc/rc.local 。
4. 编译安装PHP 。
# cd /usr/local/src 。
# tar xjvf php-5.2.4.tar.bz2 。
# cd php-5.2.4 。
# ./configure \ 。
"--prefix=/usr/local/php" \ 。
"--with-apxs2=/usr/local/apache2/bin/apxs" \ 。
"--with-config-file-path=/usr/local/php/etc" \ 。
"--with-MySQL=/usr/local/MySQL" \ 。
"--with-libxml-dir=/usr/local/libxml2" \ 。
"--with-gd=/usr/local/gd2" \ 。
"--with-jpeg-dir" \ 。
"--with-png-dir" \ 。
"--with-bz2" \ 。
"--with-freetype-dir" \ 。
"--with-iconv-dir" \ 。
"--with-zlib-dir " \ 。
"--with-openssl=/usr/local/openssl" \ 。
"--with-mcrypt=/usr/local/libmcrypt" \ 。
"--enable-soap" \ 。
"--enable-gd-native-ttf" \ 。
"--enable-ftp" \ 。
"--enable-mbstring" \ 。
"--enable-exif" \ 。
"--disable-ipv6" \ 。
"--disable-cgi" \ 。
"--disable-cli" 。
# make 。
# make install 。
# mkdir /usr/local/php/etc 。
# cp php.ini-dist /usr/local/php/etc/php.ini 。
5. 安装Zend Optimizer 。
# cd /usr/local/src 。
# tar xzvf ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz 。
# ./ZendOptimizer-3.3.0-linux-glibc21-i386/install.sh 。
安装Zend Optimizer过程的最后不要选择重启Apache.
6. 整合Apache与PHP 。
# vi /usr/local/apache2/conf/httpd.conf 。
找到:
AddType application/x-gzip .gz .tgz 。
在该行下面添加 。
AddType application/x-httpd-php .php 。
找到:
DirectoryIndex index.html 。
将该行改为 。
DirectoryIndex index.html index.htm index.php 。
找到:
#Include conf/extra/httpd-mpm.conf 。
#Include conf/extra/httpd-info.conf 。
#Include conf/extra/httpd-vhosts.conf 。
#Include conf/extra/httpd-default.conf 。
去掉前面的“#”号,取消注释.
注意:以上 4 个扩展配置文件中的设置请按照相关原则进行合理配置.
修改完成后保存退出.
# /usr/local/apache2/bin/apachectl restart 。
7. 查看确认L.A.M.P环境信息、提升 PHP 安全性 。
在网站根目录放置 phpinfo.php 脚本,检查phpinfo中的各项信息是否正确.
确认 PHP 能够正常工作后,在 php.ini 中进行设置提升 PHP 安全性.
# vi /etc/php.ini 。
找到:
disable_functions = 。
设置为:
phpinfo,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server 。
4、服务器安全性设置 。
1. 设置系统防火墙 。
# vi /usr/local/sbin/fw.sh 。
将以下脚本命令粘贴到 fw.sh 文件中.
#!/bin/bash 。
# Stop iptables service first 。
service iptables stop 。
# Load FTP Kernel modules 。
/sbin/modprobe ip_conntrack_ftp 。
/sbin/modprobe ip_nat_ftp 。
# Inital chains default policy 。
/sbin/iptables -F -t filter 。
/sbin/iptables -P INPUT DROP 。
/sbin/iptables -P OUTPUT ACCEPT 。
# Enable Native Network Transfer 。
/sbin/iptables -A INPUT -i lo -j ACCEPT 。
# Accept Established Connections 。
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 。
# ICMP Control 。
/sbin/iptables -A INPUT -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT 。
# WWW Service 。
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT 。
# FTP Service 。
/sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT 。
# SSH Service 。
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT 。
# chmod 755 /usr/local/sbin/fw.sh 。
# echo '/usr/local/sbin/fw.sh' >> /etc/rc.local 。
# /usr/local/sbin/fw.sh 。
最后此篇关于Linux 环境搭建推荐教程(php运行环境)的文章就讲到这里了,如果你想了解更多关于Linux 环境搭建推荐教程(php运行环境)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我在文档中找不到答案,所以我在这里问。 在 Grails 中,当您创建应用程序时,您会默认获得生产、开发等环境。 如果您想为生产构建 WAR,您可以运行以下任一命令: grails war 或者 gr
我们组织的网站正在迁移到 Sitecore CMS,但我们正在努力以某种方式为开发人员 (4)、设计师 (4)、QA 人员 (3)、作者 (10-15) 和批准者 (4-10) 设置环境在他们可以独立
如何在WinCVS中设置CVSROOT环境变量? 最佳答案 简单的回答是:您不需要。 CVSROOT 环境变量被高估了。 CVS(NT) 只会在确定存储库连接字符串的所有其他方法都已用尽时才使用它。人
我最近完成了“learnyouahaskell”一书,现在我想通过构建 yesod 应用程序来应用我所学到的知识。 但是我不确定如何开始。 关于如何设置 yesod 项目似乎有两个选项。一是Stack
在这一章中,我们将讨论创建 C# 编程所需的工具。我们已经提到 C# 是 .Net 框架的一部分,且用于编写 .Net 应用程序。因此,在讨论运行 C# 程序的可用工具之前,让我们先了解一下 C#
运行Ruby 代码需要配置 Ruby 编程语言的环境。本章我们会学习到如何在各个平台上配置安装 Ruby 环境。 各个平台上安装 Ruby 环境 Linux/Unix 上的 Ruby 安装
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我有一个这样的计算(请注意,这只是非常简化的、缩减版的、最小的可重现示例!): computation <- function() # simplified version! { # a lo
我使用环境作为哈希表。键是来自常规文本文档的单词,值是单个整数(某个其他结构的索引)。 当我加载数百万个元素时,更新和查找都变慢了。下面是一些代码来显示行为。 看起来从一开始的行为在 O(n) 中比在
我正在构建一个 R 包并使用 data-raw和 data存储预定义的库 RxODE楷模。这非常有效。 然而,由此产生的.rda文件每代都在变化。某些模型包含 R 环境,并且序列化似乎包含“创建时间”
(不确定问题是否属于这里,所以道歉是为了) 我很喜欢 Sublime Text ,我经常发现 Xcode 缺少一些文本/数据处理的东西。我可能有不止一个问题—— 'Command +/' 注释代码但没
我正在使用 SF2,并且创建了一些有助于项目调试的路由: widget_debug_page: path: /debug/widget/{widgetName} defau
我创建了一个名为 MyDjangoEnv 的 conda 环境。当我尝试使用 source activate MyDjangoEnv 激活它时,出现错误: No such file or direct
有没有办法区分从本地机器运行的包和从 Cordova 应用商店安装的包? 例如,我想像这样设置一个名为“evn”的 JavaScript 变量: if(cordovaLocal){ env = 'de
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我的任务是使用 java 和 mysql 开发一个交互式网站:使用 servlet 检索和处理数据,applet 对数据客户端进行特殊处理,并处理客户端对不同数据 View 的请求。 对于使用 jav
这按预期工作: [dgorur@ted ~]$ env -i env [dgorur@ted ~]$ 这样做: [dgorur@ted ~]$ env -i which date which: no
我想进行非常快速的搜索,看来使用哈希(通过环境)是最好的方法。现在,我得到了一个在环境中运行的示例,但它没有返回我需要的内容。 这是一个例子: a system.time(benchEnv(), g
我想开始开发 OpenACC 程序,我有几个问题要问:是否可以在 AMD gpu 上执行 OpenACC 代码? 如果是这样,我正在寻找适用于 Windows 环境的编译器。我花了将近一个小时什么也没
这可能看起来很奇怪,但是有没有办法制作机器(linux/unix 风格 - 最好是 RHEL)。我需要控制机器的速度以确保代码在非常慢的系统上工作并确定正确的断点(在时间方面)。 我能做到的一种方法是
我是一名优秀的程序员,十分优秀!