{"id":4104,"date":"2023-10-14T11:58:38","date_gmt":"2023-10-14T17:58:38","guid":{"rendered":"https:\/\/linuxitos.com\/main\/?p=4104"},"modified":"2023-12-20T21:38:22","modified_gmt":"2023-12-21T03:38:22","slug":"compilar-php-y-anadirlo-a-apache-fedora","status":"publish","type":"post","link":"https:\/\/linuxitos.com\/main\/compilar-php-y-anadirlo-a-apache-fedora\/","title":{"rendered":"Compilar PHP y habilitar m\u00f3dulo en httpd\/apache | Fedora"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/php-8-279829022.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"512\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/php-8-279829022-1024x512.jpg\" alt=\"\" class=\"wp-image-4106\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/php-8-279829022-1024x512.jpg 1024w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/php-8-279829022-300x150.jpg 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/php-8-279829022-768x384.jpg 768w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/php-8-279829022.jpg 1460w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Obtenido de kinsta.com<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Contexto<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Sin por alguna raz\u00f3n que se desconoce quieren compilar PHP s\u00f3lo porque s\u00ed, en este tutorial les muestro c\u00f3mo se compila X versi\u00f3n para sistemas operativos basados en fedora.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">1.- Instalar dependencias<\/h1>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo dnf install -y wget gcc gcc-c++ make automake autoconf httpd pkgconf re2c libxml2 libxml2-devel bzip2 bzip2-devel openssl openssl-devel curl curl-devel libjpeg-turbo libjpeg-turbo-devel libpng libpng-devel freetype freetype-devel oniguruma oniguruma-devel libzip libzip-devel httpd-devel re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">2.- Clonar el repositorio de PHP<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">En \u00e9ste ejemplo se est\u00e1 clonando la versi\u00f3n en desarrollo, cambiar la url para otra versi\u00f3n<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">git clone https:\/\/github.com\/php\/php-src.git --branch=master<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si en github no se encuentran la versi\u00f3n que se requiere:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.php.net\/downloads.php\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.php.net\/downloads.php<\/a><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">3.- Configurar e instalar<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">El comando configure se a\u00f1aden las extensiones que se pueden a\u00f1adir a al compilado que se har\u00e1. El listado de posibles extensiones o configuraci\u00f3n se encuentra en: <a href=\"https:\/\/www.php.net\/manual\/en\/extensions.alphabetical.php\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.php.net\/manual\/en\/extensions.alphabetical.php<\/a><\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">cd ~\/Downloads\/php-src<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">.\/buildconf<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">.\/configure --with-apxs2=\/usr\/bin\/apxs --with-openssl --with-curl --with-zlib --with-freetype --enable-mbstring --enable-sockets --enable-phar<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">make<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo make install<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de \u00e9sta comando, si todo fue correcto, al aplicar el comando php -v deber\u00e1 mostrar una salida similar a la siguiente:<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">\u279c  ~ php -v\nPHP 8.4.0-dev (cli) (built: Oct 14 2023 03:41:24) (ZTS)\nCopyright (c) The PHP Group\nZend Engine v4.4.0-dev, Copyright (c) Zend Technologies\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y s\u00f3lo para corroborar, lanzar el siguiente comando que crear\u00e1 una p\u00e1gina de info de php:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"&lt;?php phpinfo(); ?&gt;\" | sudo tee \/var\/www\/html\/info.php<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y para visualizarlo abrir en el navegador en la ruta <a href=\"http:\/\/localhost\/info.php\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost\/info.php<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/Screenshot-from-2023-10-14-11-56-06.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"739\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/Screenshot-from-2023-10-14-11-56-06-1024x739.png\" alt=\"\" class=\"wp-image-4109\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/Screenshot-from-2023-10-14-11-56-06-1024x739.png 1024w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/Screenshot-from-2023-10-14-11-56-06-300x217.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/Screenshot-from-2023-10-14-11-56-06-768x554.png 768w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/10\/Screenshot-from-2023-10-14-11-56-06.png 1370w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Al finalizar el proceso de compilaci\u00f3n, si todo fue correcto, entonces en la ruta del c\u00f3digo fuente compilado en libs debe estar el archivo libphp.so, la cual es la que se debe de mover a las libs<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">4.- Mover las librer\u00edas que se gener\u00f3 con el compilado<\/h1>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">libtool --finish \/home\/linuxitos\/Downloads\/php-src\/libs<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">5.- Editar el archivo httpd.conf<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">En fedora el archivo httpd.conf se localiza en el director \/etc\/httpd\/conf y es necesario editarlo y a\u00f1adir la librer\u00eda que se acab\u00f3 de compilar, es decir, es el proceso de a\u00f1adirlo a apache.<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo gnome-text-editor \/etc\/httpd\/conf\/httpd.conf<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A\u00f1adir \u00e9stas tres l\u00edneas al archivo debajo de la l\u00ednea que dice Include conf.modules.d\/*.conf:<\/p>\n\n\n\n<pre style=\"background: rgb(242, 242, 242); border-radius: 2px; border: 1px solid #aaa; box-sizing: border-box; color: #222; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">[...]\n\nInclude conf.modules.d\/*.conf\n\nLoadModule php_module modules\/libphp.so\nAddHandler php-script .php\nInclude conf.d\/*.conf\n\n[...]<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">6.- Reiniciar servicio de apache<\/h2>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo systemctl restart httpd<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">7.- Crear carpeta de proyectos y permisos al directorio<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sugerencia crear un directorio raiz en la ruta \/var\/www\/html para guardar todos los proyectos que se desarrollen, de tal manera que s\u00f3lo se cree uno y se le asigne permisos:<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo mkdir \/var\/www\/html\/devs\nsudo chmod -R 775 devs\nsudo chown -R apache:tuUsuario devs<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y listo, eso ser\u00eda todo, gracias por visitar<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Contexto Sin por alguna raz\u00f3n que se desconoce quieren compilar PHP s\u00f3lo porque s\u00ed, en este tutorial les muestro c\u00f3mo se compila X versi\u00f3n para sistemas operativos basados en fedora. 1.- Instalar dependencias sudo dnf install -y wget gcc gcc-c++ make automake autoconf httpd pkgconf re2c libxml2 libxml2-devel bzip2 bzip2-devel openssl openssl-devel curl curl-devel libjpeg-turbo [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4106,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[258,7,283,291,1165],"tags":[1939,1556],"class_list":["post-4104","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-clases-php","category-fedora","category-graficar-en-php","category-phppgadmin","category-servidor-php","tag-compilar-php","tag-php"],"_links":{"self":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/4104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/comments?post=4104"}],"version-history":[{"count":9,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/4104\/revisions"}],"predecessor-version":[{"id":4186,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/4104\/revisions\/4186"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/media\/4106"}],"wp:attachment":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/media?parent=4104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/categories?post=4104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/tags?post=4104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}