[월:] 2016년 04월
Centos7 php5.6버전설치하기
PHP 5.6 on CentOS/RHEL 7.2 and 6.7 via Yum
PHP 5.6.19 has been released on PHP.net on 3rd March 2016, and is also available for CentOS/RHEL 6.7 and 7.2 at Webtatic via Yum.
Update 2015-08-22 – Webtatic now has released PHP 7 RC1 for CentOS/RHEL 6 and 7
PHP 5.6 adds new features such as:
- constant scalar expressions
- variadic functions
- argument unpacking
- exponentiation operator
- support for large(>2GiB) file uploads
- SSL/TLS improvements including peer verification by default
- a new command line debugger called phpdbg
To see what else has been added, check out the Migrating from PHP 5.5.x to PHP 5.6.x.
To install, first you must add the Webtatic EL yum repository information corresponding to your CentOS/RHEL version to yum:
CentOS/RHEL 7.x:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm |
CentOS/RHEL 6.x:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm |
Now you can install PHP 5.6’s mod_php SAPI (along with an opcode cache) by doing:
yum install php56w php56w-opcache |
You can alternatively install PHP 5.6’s php-fpm SAPI (along with an opcode cache by doing:
yum install php56w-fpm php56w-opcache |
See the package list below for additional SAPIs and PHP extensions.
If you would like to upgrade php to this version it is recommended that you first check that your system will support the upgrade, e.g. making sure any CPanel-like software can run after the upgrade.
Unless you know what you are doing, it is risky upgrading an existing system. It’s much safer to do this by provisioning a separate server to perform the upgrade as a fresh install instead.
If you know what you are doing, you can upgrade PHP by:
yum install yum-plugin-replace yum replace php-common --replace-with=php56w-common |
It will likely give you a message “WARNING: Unable to resolve all providers …”. This is normal, and you can continue by tying “y“. You will be given a chance to see what packages will be installed and removed before again being given a chance to confirm.
SAPIs – different runtime environments of PHP
- mod_php NTS
- (non-thread safety) Contained in the php56w package, this SAPI integrates into Apache Httpd (2.2.* on RHEL/CentOS 6, 2.4.* on RHEL/CentOS 7). It is the standard SAPI for use with httpd prefork mpm (the default mode httpd is ran under. It is not thread-safe, but doesn’t need to be due to prefork not using threads. It’s located at /usr/lib[64]/httpd/modules/libphp5.so
- cli
- Contained in the php56w-cli package, this SAPI allows running scripts from the command-line, and also has a built-in web server for development-use. Located at /usr/bin/php
- fpm
- Contained in the php56w-fpm package, fpm (FastCGI Process Manager) is a scalable FastCGI process, which acts similar to how Httpd prefork mpm works managing it’s forks. Located at /usr/sbin/php-fpm, it is controlled using the /etc/init.d/php-fpm service script
- phpdbg
- Contained in the php56w-phpdbg package, phpdbg has the ability to debug scripts using breakpoints from the command-line, and also supports remote-debugging using an external Java client for remote communication.
- embedded
- Contained in the php56w-embedded package, this SAPI allows embedding PHP in other applications. It’s library is located at /usr/lib[64]/libphp5.so
- cgi, fastcgi
- Contained in the php56w-cli package, these SAPIs are not recommended for use, but are available where needed. They both exist in the binary at /usr/bin/php-cgi.
- mod_php TS
- (thread safety) Contained in the php56w package, this SAPI integrates into Apache Httpd (2.2.* on RHEL/CentOS 6, 2.4.* on RHEL/CentOS 7). It is the standard SAPI for use with httpd worker mpm. It’s supposed to be thread-safe, but can’t guarantee to be, and certainly not under additional PHP extensions. It’s better to use FastCGI SAPIs than this one. It’s located at /usr/lib[64]/httpd/modules/libphp5-zts.so
Packages
Package | Provides |
---|---|
php56w | mod_php, php56w-zts |
php56w-bcmath | |
php56w-cli | php-cgi, php-pcntl, php-readline |
php56w-common | php-api, php-bz2, php-calendar, php-ctype, php-curl, php-date, php-ereg, php-exif, php-fileinfo, php-filter, php-ftp, php-gettext, php-gmp, php-hash, php-iconv, php-json, php-libxml, php-openssl, php-pcre, php-pecl-Fileinfo, php-pecl-phar, php-pecl-zip, php-reflection, php-session, php-shmop, php-simplexml, php-sockets, php-spl, php-tokenizer, php-zend-abi, php-zip, php-zlib |
php56w-dba | |
php56w-devel | |
php56w-embedded | php-embedded-devel |
php56w-enchant | |
php56w-fpm | |
php56w-gd | |
php56w-imap | |
php56w-interbase | php_database, php-firebird |
php56w-intl | |
php56w-ldap | |
php56w-mbstring | |
php56w-mcrypt | |
php56w-mssql | |
php56w-mysql | php-mysqli, php_database |
php56w-mysqlnd | php-mysqli, php_database |
php56w-odbc | php-pdo_odbc, php_database |
php56w-opcache | php56w-pecl-zendopcache |
php56w-pdo | |
php56w-pear | |
php56w-pecl-apcu | |
php56w-pecl-gearman | |
php56w-pecl-geoip | |
php56w-pecl-imagick | |
php56w-pecl-memcache | |
php56w-pecl-xdebug | |
php56w-pgsql | php-pdo_pgsql, php_database |
php56w-phpdbg | |
php56w-process | php-posix, php-sysvmsg, php-sysvsem, php-sysvshm |
php56w-pspell | |
php56w-recode | |
php56w-snmp | |
php56w-soap | |
php56w-tidy | |
php56w-xml | php-dom, php-domxml, php-wddx, php-xsl |
php56w-xmlrpc |
Opcode Caches
The PHP distribution now comes with an opcode cache. This is the Zend Optimizer+ opcode cache, now known as the Zend OPcache extension. This extension is optional, so does not preclude you from using an alternate one.
Due to it being included in the PHP source distribution, it will be well maintained and more suitable for use while other Opcode cache’s are being updated over the coming months.
yum install php56w-opcache |
error_reporting E_ALL now includes E_STRICT
As mentioned in the PHP 5.4 guide:
You may get a lot more errors coming out of your error logs if by default your error_reporting is set to E_ALL now without explicitly turning off E_STRICT. The default php.ini that comes with the PHP package turns this off by default, but if you are upgrading from an existing installation, your php.ini may not be updated, meaning this will likely be turned on.
Centos 7 SendMail 설치
Sendmail is a MTA (Mail Transfer Agent) server used for transferring email from between different hosts. Sendmail uses SMTP (Simple Mail Transfer Protocol) protocol. Most of system administrators preferred to use Sendmail server as MTA than other MTAs.
RHEL 5 or its earlier versions were using Sendmail as default mail server, But newer version’s of RHEL based systems adapted postfix as default mail server. Most of users are familiar with Sendmail and want to use it with version 6 also. This article will help that users for installing Sendmail server on RHEL 7/6/5 or with minimal configuration.
팩키지를 설치하기 위한 준비
If you don’t have installed Sendmail using following command to install Sendmail with other required packages using yum package manager.
# yum install sendmail sendmail-cf m4
SendMail 설정
Before starting configuration we must know about various Sendmail configuration files exists in /etc/mail directory.
- access — Allow/Deny other systems to use Sendmail for outbound emails.
- domaintable — Used for domain name mapping for Sendmail.
- local-host-names — Used to define aliases for the host.
- mailertable — Defined the instructions that override routing for particular domains.
- virtusertable — Specifies a domain-specific form of aliasing, allowing multiple virtual domains to be hosted on one machine.
2.1 Comment out below line in /etc/mail/sendmail.mc to allow receiving email from anywhere. To comment a line in sendmail.mc, just put dnl at start of line.
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
2.2 Add this line also in sendmail.mc above ‘MAILER’ option
FEATURE(`relay_hosts_only')dnl
2.3 Add your PC’s full hostname in this file.
# hostname >> /etc/mail/relay-domains
Recompile Sendmail Configuration
m4 ia a macro processor to compile the Sendmail configuration files. m4 is stream-based, that is, it doesn’t understand about lines.
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
Restart Sendmail service
# /etc/init.d/sendmail restart
Configure Domain based E-mail Routing
As we read above that virtusertable file used for aliasing, allowing multiple virtual domains to be hosted on one machine.
1. All emails addressed to @example.com domain delivered to support@mydomain.com
@example.com support@mydomain.com
2. All emails addressed to support@mydomain.com will forward to local user jack.
support@mydomain.com jack
3. All emails addressed to @mydomain.com will forward to domain @otherdomain.com with corresponding usernames.
@mydomain.com %1@otherdomain.com
4. All emails addressed to @otherdomain.com will be rejected my mail server with acknowledging sender with message
@otherdomain.com error:nouser User unknown
After making all changes in virtusertable execute following command to create updated virtusertable.db file containing the new configuration.
# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
Now restart Sendmail service
# /etc/init.d/sendmail restart
Thanks for reading this article. I hope this article will help you to configure Sendmail on CentOS and Red Hat systems..
References:
http://www.sendmail.com/
http://www.sendmail.com/sm/open_source/docs/m4/intro_m4.html
This post is from http://tecadmin.net/install-sendmail-server-on-centos-rhel-server/
PHP를 잘하려면..,
php를 잘하려면… 도구가 좋아야겠죠?
그래서 phpstorm을 소개합니다.
이클립스,에디터플러스,sublime text를 사용하셨던 분이라면
php스톰을 적극 추천합니다.
안녕하세요!
개발을 하다보니 제가 코딩한것도 이해가 잘 안가고 ㅋㅋ 그래서 요약하려고 이 사이트를 만들었습니다.