found - Cómo instalar PHP 7 en la instancia de EC2 t2.micro con Amazon Linux Distro
install mysql amazon linux (12)
Quiero instalar el último PHP 7.0 en una instancia de AWS EC2 T2.Micro. Hasta ahora he leído que actualmente AWS no es compatible con PHP 7. Pero hey ... Esto es solo un servidor virtual en la nube y yo tengo el control total sobre su configuración, por lo que debe haber alguna forma de ejecutar PHP 7 en este uno.
Cualquier ayuda muy apreciada.
Mi caja es la siguiente
$ cat /etc/*-release
---------------------------------------
NAME="Amazon Linux AMI"
VERSION="2015.09"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.09"
PRETTY_NAME="Amazon Linux AMI 2015.09"
ANSI_COLOR="0;33"
CPE_NAME="[*not significant*]"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2015.09
$ uname -a
---------------------------------------
Linux ip-xxx-xxx-xxx-xxx 4.1.13-18.26.amzn1.x86_64 #1 [date] x86_64 x86_64 x86_64 GNU/Linux
$ uname -mrs
---------------------------------------
Linux 4.1.13-18.26.amzn1.x86_64 x86_64
$ cat /proc/version
---------------------------------------
Linux version 4.1.13-18.26.amzn1.x86_64 (mockbuild@gobi-build-64010) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) )
Última respuesta, pero vale la pena saberlo, ya que es un poco más simple / php7 no está disponible en los repositorios estándar para LTS AMI, y esto no surgió hasta que busqué un poco más difícil:
amazon-linux-extras install php7.2
La versión de extras se puede verificar con un comando de lista si v7.2 ya no está actualizado:
amazon-linux-extras list
Ahora hay paquetes oficiales de php7 para aws linux desde el 14 de julio de 2016. Ver el anuncio en https://forums.aws.amazon.com/ann.jspa?annID=3902
Para enumerar los paquetes disponibles, ejecute yum list php70 *
Ahora puede usar los paquetes oficiales de php7. Aquí una guía fácil de seguir.
1. Instalar Apache 2.4 y PHP 7.0 en Amazon Linux AMI
# Remove current apache & php
sudo yum remove httpd* php*
# Install Apache 2.4
sudo yum install httpd24
# Install PHP 7.0
# automatically includes php70-cli php70-common php70-json php70-process php70-xml
sudo yum install php70
# Install additional commonly used php packages
sudo yum install php70-gd
sudo yum install php70-imap
sudo yum install php70-mbstring
sudo yum install php70-mysqlnd
sudo yum install php70-opcache
sudo yum install php70-pdo
sudo yum install php70-pecl-apcu
2. Modificar DirectoryIndex para incluir index.php
sudo nano /etc/httpd/conf/httpd.conf
encuentra esto:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
y modificarlo para que se vea así:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
Si un directorio contiene un index.html y un index.php, el servidor servirá el index.html con esta configuración. Si no desea que eso suceda, tiene las siguientes opciones:
Invierta el orden, por lo que index.php se sirve cuando ambos archivos existen:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
Solo use index.php como DirectoryIndex:
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
3. Inicie el servidor web Apache
sudo service httpd start
4. Configure el servidor web Apache para que comience en cada arranque del sistema
sudo chkconfig httpd on
5. Pruebe su instalación
Crea phpinfo.php:
echo ''<?php print phpinfo();'' | sudo tee --append /var/www/html/phpinfo.php
Abra su navegador e ingrese la IP pública de su instancia en la barra de direcciones seguida por /phpinfo.php
Example: http://xxx.xxx.xxx.xxx/phpinfo.php
Nota: no olvide permitir las conexiones entrantes para HTTP (puerto 80) en los grupos de seguridad de su instancia, de lo contrario su solicitud expirará.
Así es como instalé PHP 7.1 en Amazon Linux:
wget http://rpms.remirepo.net/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6.rpm epel-release-latest-6.noarch.rpm
yum-config-manager --enable remi-php71
wget ftp://195.220.108.108/linux/epel/6/x86_64/Packages/s/scl-utils-20120229-1.el6.x86_64.rpm
rpm -Uvh scl-utils-20120229-1.el6.x86_64.rpm
yum install php71
https://gist.github.com/ihor/581d169886c29e7e17d01b0041167b01
El nombre del paquete php 7 es php70w . Entonces, lo que puede hacer es instalar un repositorio Webtatic en su máquina Linux e instalarlo desde allí.
rpm -ivh https://mirror.webtatic.com/yum/el6/latest.rpm
yum clean all
yum install --enablerepo=webtatic php70w
Estaba instalando PHP 7.0 en una caja de producción que ya tiene apache 2.4 y PHP 5.5. Quería instalar PHP 7.0 junto a él de una manera que no tuviera interrupción del servidor. Esto es lo que hice.
# Install PHP 7.0
# automatically includes php70-cli php70-common php70-json php70-process php70-xml
sudo yum install php70
# Install additional commonly used php packages
sudo yum install php70-gd
sudo yum install php70-imap
sudo yum install php70-mbstring
sudo yum install php70-mysqlnd
sudo yum install php70-opcache
sudo yum install php70-pecl-apcu
Este PHP 7 felizmente instalado junto con PHP 5.5. El truco fue decirle a apache que usara 7.0. No estoy seguro de si esta fue la mejor manera, pero logré esto cambiando estos 2 enlaces permanentes:
ln -sf /etc/httpd/conf.d/php-conf.7.0 /etc/alternatives/php.conf
ln -sf /etc/httpd/conf.modules.d/15-php-conf.7.0 /etc/alternatives/10-php.conf
En este punto, apache todavía está felizmente corriendo 5.5. Luego, cuando reinicie Apache, debería funcionar con 7.0 (tal vez 7.0.1). Este es el camino sin tiempo de inactividad. Todavía recomendaría hacer lo que hice, que es reconstruir PROD en otra instancia (crear un servidor TEST) y probarlo todo una vez antes de hacerlo realmente en PROD. ¡Buena suerte!
Ah, y ahora el comando php seguirá ejecutando 5.5. Puede cambiar cualquier secuencia de comandos o trabajos CRON para apuntar a php7 o cambiar la versión predeterminada ejecutando
alternatives --config php
Este hilo me ayudó a acercarme lo suficiente para terminarlo, estoy compartiendo los comandos y la salida que funcionó para mí.
En Amazon Lightsail con Amazon Linux ( amzn1.x86_64 ), la siguiente lista de comandos me ayudó a eliminar el sistema de Apache 2.2 y PHP 5.3 para llegar a Apache 2.4 y PHP :
- Elimine la versión actual de php y las herramientas relacionadas:
sudo yum remove php*
==============================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================
Removing:
php x86_64 5.3.29-1.8.amzn1 @amzn-main 7.4 M
php-cli x86_64 5.3.29-1.8.amzn1 @amzn-main 6.4 M
php-common x86_64 5.3.29-1.8.amzn1 @amzn-main 6.3 M
php-devel x86_64 5.3.29-1.8.amzn1 @amzn-main 9.9 M
php-gd x86_64 5.3.29-1.8.amzn1 @amzn-main 669 k
php-mbstring x86_64 5.3.29-1.8.amzn1 @amzn-main 4.1 M
php-mcrypt x86_64 5.3.29-1.8.amzn1 @amzn-main 92 k
php-mysql x86_64 5.3.29-1.8.amzn1 @amzn-main 445 k
php-pdo x86_64 5.3.29-1.8.amzn1 @amzn-main 381 k
php-xml x86_64 5.3.29-1.8.amzn1 @amzn-main 625 k
Transaction Summary
==============================================================================================================================================
Remove 10 Packages
- Elimine la versión actual de Apache ( tenga en cuenta que debe hacer una copia de seguridad de la carpeta
conf
yconf.d
antes de hacer esto, en mi caso, era una nueva configuración del sistema, por lo que no había nada de interés allí ):
sudo yum remove http*
==============================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================
Removing:
httpd x86_64 2.2.31-1.8.amzn1 @amzn-main 3.0 M
httpd-devel x86_64 2.2.31-1.8.amzn1 @amzn-main 534 k
httpd-tools x86_64 2.2.31-1.8.amzn1 @amzn-main 135 k
Transaction Summary
==============================================================================================================================================
Remove 3 Packages
- Instalar Apache 2.4 (y comenzar a Apache)
sudo yum install httpd24.x86_64
sudo service httpd start
- Instalar PHP 7
sudo yum install php70
==============================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================
Installing:
php70 x86_64 7.0.13-1.19.amzn1 amzn-updates 3.3 M
Installing for dependencies:
php70-cli x86_64 7.0.13-1.19.amzn1 amzn-updates 4.7 M
php70-common x86_64 7.0.13-1.19.amzn1 amzn-updates 1.2 M
php70-json x86_64 7.0.13-1.19.amzn1 amzn-updates 65 k
php70-process x86_64 7.0.13-1.19.amzn1 amzn-updates 79 k
php70-xml x86_64 7.0.13-1.19.amzn1 amzn-updates 309 k
Transaction Summary
==============================================================================================================================================
Install 1 Package (+5 Dependent packages)
Total download size: 9.6 M
Installed size: 31 M
Is this ok [y/d/N]: y
Downloading packages:
(1/6): php70-7.0.13-1.19.amzn1.x86_64.rpm | 3.3 MB 00:00
(2/6): php70-cli-7.0.13-1.19.amzn1.x86_64.rpm | 4.7 MB 00:00
(3/6): php70-common-7.0.13-1.19.amzn1.x86_64.rpm | 1.2 MB 00:00
(4/6): php70-json-7.0.13-1.19.amzn1.x86_64.rpm | 65 kB 00:00
(5/6): php70-process-7.0.13-1.19.amzn1.x86_64.rpm | 79 kB 00:00
(6/6): php70-xml-7.0.13-1.19.amzn1.x86_64.rpm | 309 kB 00:00
----------------------------------------------------------------------------------------------------------------------------------------------
Total 14 MB/s | 9.6 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : php70-json-7.0.13-1.19.amzn1.x86_64 1/6
Installing : php70-process-7.0.13-1.19.amzn1.x86_64 2/6
Installing : php70-xml-7.0.13-1.19.amzn1.x86_64 3/6
Installing : php70-cli-7.0.13-1.19.amzn1.x86_64 4/6
Installing : php70-common-7.0.13-1.19.amzn1.x86_64 5/6
Installing : php70-7.0.13-1.19.amzn1.x86_64 6/6
Verifying : php70-7.0.13-1.19.amzn1.x86_64 1/6
Verifying : php70-common-7.0.13-1.19.amzn1.x86_64 2/6
Verifying : php70-json-7.0.13-1.19.amzn1.x86_64 3/6
Verifying : php70-process-7.0.13-1.19.amzn1.x86_64 4/6
Verifying : php70-xml-7.0.13-1.19.amzn1.x86_64 5/6
Verifying : php70-cli-7.0.13-1.19.amzn1.x86_64 6/6
Installed:
php70.x86_64 0:7.0.13-1.19.amzn1
Dependency Installed:
php70-cli.x86_64 0:7.0.13-1.19.amzn1 php70-common.x86_64 0:7.0.13-1.19.amzn1 php70-json.x86_64 0:7.0.13-1.19.amzn1
php70-process.x86_64 0:7.0.13-1.19.amzn1 php70-xml.x86_64 0:7.0.13-1.19.amzn1
Complete!
Las otras respuestas parecen funcionar solo con Apache 2.2 pero no con 2.4.
Así es como instalé php7 en Amazon Linux ejecutando Apache 2.4:
Primero, si php ya está instalado, elimínelo:
sudo yum remove php5*
Tome nota de los paquetes php5 que se están eliminando, ya que tendrá que instalar las versiones php7 de ellos. Los nombres de los paquetes de php7 tienen una asignación bastante directa y sin ambigüedades de sus contrapartes de php5, como verá a continuación. El resto de las instrucciones cubren una pila LAMP clásica y pueden ser suficientes para su caso de uso.
Usando instrucciones de http://www.spidersoft.com.au/2015/php-7-on-ami-linux-ec2/
wget http://mirrors.mediatemple.net/remi/enterprise/remi-release-6.rpm
sudo yum install remi-release-6.rpm
edite /etc/yum.repos.d/epel.repo
y establezca enabled=1
sudo yum upgrade -y
sudo yum install php70 php70-php-fpm php70-php-xml php70-php-pdo php70-php-mysqlnd php70-php-gd php70-php-pecl-apcu php70-php-mbstring php70-php-mcrypt php70-php-opcache
Ahora debería tener instalado php70-php-fpm, que puede usar junto con apache:
Inicie el daemon fpm:
sudo service php70-php-fpm start
Cambie Apache de prefork a mpm event worker (esto es necesario porque mod_php no es seguro para subprocesos) en /etc/httpd/conf.modules.d/00-mpm.conf
:
LoadModule mpm_event_module modules/mod_mpm_event.so
Instruye a apache para que pase todas las solicitudes de php a php-fpm agregando las siguientes líneas en /etc/httpd/conf/httpd.conf
<FilesMatch /.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
DirectoryIndex /index.php index.php
Reinicie apache utilizando el sudo service httpd restart
. Si todo fue bien, debería poder verificar la instalación solicitando un archivo php que contenga phpinfo()
.
Si tiene scripts de shell que usan el intérprete cli de php y así comienzan con #!/usr/bin/php
, debe configurar un enlace simbólico a /usr/bin/php
ya que el binario ahora se llama /usr/bin/php70
. Puedes hacer esto de la siguiente manera:
sudo ln -s /usr/bin/php70 /usr/bin/php
Para obtener más información sobre cómo configurar php-fpm, consulte https://wiki.apache.org/httpd/PHP-FPM
Lo tengo funcionando en mi instancia. Necesita http2.2 para que funcione con el repositorio webtatic. Tenía tantos repos que había un montón de incompatibilidades de versiones diferentes. No guardé grandes notas, pero mirando mi historial, básicamente hice esto:
# Remove current php & apache
sudo service httpd stop
sudo yum remove httpd* php*
# Remove any third party repos that aren''t relevant
sudo yum repolist
sudo yum remove remi-safe
# Install Standard Apache for Amazon AMI
sudo yum install httpd #specify http22 if you get a different version
# Download webtatic
mkdir -p /tmp/php7
cd /tmp/php7
wget https://mirror.webtatic.com/yum/el6/latest.rpm
# Install webtatic repo
sudo yum install latest.rpm
sudo vi /etc/yum.repos.d/webtatic.repo ''set repo enables
sudo yum clean all
# Install base php7
sudo yum install --enablerepo=webtatic php70w
php -v #Should say something like PHP 7.0.2 (cli) (built: Jan 9 2016 16:09:32) ( NTS )
sudo yum install php70w-opcache
sudo yum install php70w-xml
sudo yum install php70w-pdo
sudo yum install php70w-mysqlnd
sudo yum install php70w-gd
sudo yum install php70w-apcu
sudo yum install php70w-pecl-apcu
sudo yum install php70w-mbstring
sudo yum install php70w-imap
# Restart apache
sudo service httpd restart
Si quieres una instalación rápida de copiar y pegar:
wget http://mirrors.mediatemple.net/remi/enterprise/remi-release-6.rpm
sudo yum install -y remi-release-6.rpm
sudo yum update -y
sudo yum install -y --enablerepo=epel php70
Prueba con:
php70 -v
Y si quieres que el ejecutable sea php
:
ln -s /usr/bin/php70 /usr/local/bin/php
php -v
Varias respuestas deberían funcionar aquí; sin embargo, cuando estaba instalando el mío, no representaba páginas y mostraba texto en lugar de PHP.
Para arreglar eso, corrí
sudo yum install php70-php-fpm
Después de eso, todo comenzó a funcionar.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html
puede seguir esta guía paso a paso para la instalación de LAMP
sudo yum update -y
sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd
sudo service httpd start