Documentació
Varies ordres per ubuntu
EL TEU RESUM AQUI DINTRE NOMES h i p
Varies ordres per ubuntu
//entrar desde el meu ordinar a windows 11 amb cmd
ssh root@148.230.117.150
//eliminar una carpeta ull
sudo rm -rf /var/www/html/laravel
//vaciar la carpeta www
sudo rm -rf /var/www/* /var/www/.*
//crear una carpeta a /var/www/html/laravel
sudo mkdir /var/www/html/laravel
//clonar repositori desde github situarse a la carpeta www i fer:
git clone https://github.com/estudijoanpuig/laravel12.git
//actualitzar composer
composer update
//donar permisos
sudo chown -R www-data:www-data /var/www/laravel12/storage /var/www/laravel12/bootstrap/cache
sudo chmod -R 775 /var/www/laravel12/storage /var/www/laravel12/bootstrap/cache
//PROJECTE CI4ADMIN PERMISOS 1
find /var/www/html/ci4admin -type d -exec chmod 755 {} \;
find /var/www/html/ci4admin -type f -exec chmod 644 {} \;
//PROJECTE CI4ADMIN PERMISOS 2
chown -R www-data:www-data /var/www/html/ci4admin
//PROJECTE LARPRELINE
find /var/www/html/larpreline -type d -exec chmod 755 {} \;
find /var/www/html/larpreline -type f -exec chmod 644 {} \;
chown -R www-data:www-data /var/www/html/larpreline
//problemes a l'storage
chown -R www-data:www-data /var/www/html/larpreline/storage
chmod -R 755 /var/www/html/larpreline/storage
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear
//instal·lar dependències
composer install
//crear fitxer .env
cp .env.example .env
//generar clau d'aplicació
php artisan key:generate
//migrar la base de dades
php artisan migrate
//instal·lar dependències de Node.js
npm install
//compilar els actius
npm run build
//storage link
php artisan storage:link
//instal·lar dependències
composer update
//modificar /etc\apache2\sites-available\000-default.conf
//reiniciar apache
sudo systemctl restart apache2
Creació de Migracions, Models i Controladors
Passos i Comandes Realitzades
Crear les migracions en l'ordre correcte per les dependències de claus foranes
php artisan make:migration create_categories_table
php artisan make:migration create_empleats_table
php artisan make:migration create_clients_table
php artisan make:migration create_metode_pagaments_table
php artisan make:migration create_productes_table
php artisan make:migration create_vendes_table
php artisan make:migration create_detalls_venda_table
Executar les migracions per crear les taules a la base de dades
php artisan migrate:fresh
Crear els models d'Eloquent (si no es fan amb les migracions)
php artisan make:model Categoria
php artisan make:model Empleat
php artisan make:model Client
php artisan make:model MetodePagament
php artisan make:model Producte
php artisan make:model Venda
php artisan make:model DetallVenda
Crear els controladors de recurs per a cada model
php artisan make:controller CategoriaController --resource
php artisan make:controller EmpleatController --resource
php artisan make:controller ClientController --resource
php artisan make:controller MetodePagamentController --resource
php artisan make:controller ProducteController --resource
php artisan make:controller VendaController --resource
php artisan make:controller DetallVendaController --resource
Models d'Eloquent
A continuació, es mostra el codi implementat a cada model per definir els camps assignables ($fillable) i les relacions.
Model Categoria
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Categoria extends Model
{
use HasFactory;
protected $table = 'categories';
protected $fillable = ['nom'];
public function productes(): HasMany
{
return $this->hasMany(Producte::class);
}
}
Model Producte
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Producte extends Model
{
use HasFactory;
protected $table = 'productes';
protected $fillable = ['categoria_id', 'nom', 'descripcio', 'preu_base', 'estoc', 'imatge_url', 'video_url'];
public function categoria(): BelongsTo
{
return $this->belongsTo(Categoria::class);
}
public function detallsVenda(): HasMany
{
return $this->hasMany(DetallVenda::class);
}
}
Model Venda
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
class Venda extends Model
{
use HasFactory;
protected $table = 'vendes';
protected $fillable = ['data', 'client_id', 'empleat_id', 'metode_pagament_id', 'import_sense_iva', 'iva_total', 'import_total'];
public function client(): BelongsTo
{
return $this->belongsTo(Client::class);
}
public function empleat(): BelongsTo
{
return $this->belongsTo(Empleat::class);
}
public function metodePagament(): BelongsTo
{
return $this->belongsTo(MetodePagament::class);
}
public function detallsVenda(): HasMany
{
return $this->hasMany(DetallVenda::class);
}
}
Actualitzar canvis de GitHub
Aquest document explica com actualitzar un projecte Laravel (12.22.1, PHP 8.2.29, Filament 3.3.0) al VPS de Hostinger des de GitHub . Projecte a estudijoanpuig.com
.
Actualitzar canvis de GitHub
git remote -v
git pull origin main
composer install --no-dev --optimize-autoloader
php artisan config:cache
php artisan cache:clear
php artisan migrate --seed
systemctl restart apache2
5. Configurar permisos
chown -R www-data:www-data /var/www/html/larb5
chmod -R 755 /var/www/html/larb5
chmod -R 775 /var/www/html/larb5/storage /var/www/html/larb5/bootstrap/cache
installar laravel
Accedeix al VPS via SSH i navega al projecte:
ssh root@tu_ip_vps
sudo apt update && sudo apt upgrade -y
cd /var/www
sudo composer create-project laravel/laravel laravel
sudo chown -R www-data:www-data /var/www/laravel
sudo chmod -R 775 /var/www/laravel/storage
sudo chown -R www-data:www-data /var/www/laravel/storage
cd /var/www/laravel
cp .env.example .env
nano .env
DB_DATABASE=laravel_db
DB_USERNAME=tu_usuario
DB_PASSWORD=tu_contraseña
php artisan migrate
Instal·lació de WordPress via SSH
Guia simplificada per instal·lar WordPress en un servidor Ubuntu 24.04 via SSH.
cd /tmp
curl -O https://wordpress.org/latest.tar.gz
tar -xvzf latest.tar.gz
sudo rsync -av wordpress/ /var/www/html/
sudo rm /var/www/html/index.html
sudo chown -R www-data:www-data /var/www/html/
sudo find /var/www/html/ -type d -exec chmod 755 {} \;
sudo find /var/www/html/ -type f -exec chmod 644 {} \;
cd /var/www/html/
cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
Introdueix les dades de la base de dades:
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wpuser' );
define( 'DB_PASSWORD', 'contrasenya_segura' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );
Obre el navegador i ves a http://IP_DEL_SERVIDOR
o al teu domini. Hauries de veure la pantalla d’instal·lació de WordPress.
- Activa HTTPS amb Let's Encrypt:
sudo apt install certbot python3-certbot-apache
- Fes còpies de seguretat regulars
- Mantingues el sistema actualitzat:
sudo apt upgrade
Errors trobats i solucions
1. Constants WP_HOME i WP_SITEURL mal ubicades
Estaven després del require de wp-settings.php, s’han de definir abans.
// ** Database settings ** //
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'joan' );
define( 'DB_PASSWORD', 'queMm88/g62123' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );
// ** URLs del lloc ** //
define( 'WP_HOME', 'http://estudijoanpuig.com/wordpress' );
define( 'WP_SITEURL', 'http://estudijoanpuig.com/wordpress' );
// ** Claus úniques d'autenticació i salts ** //
define( 'AUTH_KEY', 'yk-|:{_GlWRO?&dR,pyR7Hw?83#|' );
define( 'LOGGED_IN_KEY', '&)Lz1b)& )Ym=Q+tO|r/:Ds$DLO2DlRVN#[mm`?se_Lyg6(x(Rz;N%`tx/%p$jHK' );
define( 'NONCE_KEY', 'cODdC40u#GdXK,f@|!/,Q7whe5WPJW!kuT+|:MSKfy&Z=- {=D*.ny$H~crv~!AV' );
define( 'AUTH_SALT', 'zaVB(sX*-yH)ubaIwo>b%Rbr{a|,tWaJ2rM*3b_J{ym6tR+M<}TG>7*)D_kYnSlT' );
define( 'SECURE_AUTH_SALT', ' pg@a;:bjM~5W~aX[Us0e}Tn!Xi5ZWn7=~l>K #Rfsyt,nq|n@cXnASX5%.t)Kq:' );
define( 'LOGGED_IN_SALT', 'c:g>mXz?mueAZ#s-wl.U)U/Wg K*7cnX$=eBat(UAHm{}irBFV*y>t=r' );
// ** Prefix de les taules de la base de dades ** //
$table_prefix = 'wp_';
// ** Mode depuració ** //
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );
// ** Ruta absoluta de WordPress ** //
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
// ** Carrega de WordPress ** //
require_once ABSPATH . 'wp-settings.php';
2. Plugin Google Site Kit trencat
Faltava el fitxer includes/Plugin.php. Solució: desactivar-lo renombrant la carpeta i reinstal·lar-lo.
3. Memòria PHP insuficient
El memory_limit era 128M i causava errors fatals amb WooCommerce i el tema. Solució: augmentar a 256M o 512M a wp-config.php i php.ini.